Changeset 159


Ignore:
Timestamp:
04/05/09 15:32:54 (15 years ago)
Author:
nanardon
Message:
  • add Vote::DB::common module to share common functions
Location:
trunk
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/MANIFEST

    r158 r159  
    2323lib/Vote/Controller/Vote.pm 
    2424lib/Vote/DB.pm 
     25lib/Vote/DB/common.pm 
    2526lib/Vote/Model/Vote.pm 
    2627lib/Vote/Template/Plugin/Mail.pm 
  • trunk/lib/Vote/DB.pm

    r157 r159  
    66use warnings; 
    77use Vote; 
    8 use DBI; 
    98use Mail::Mailer; 
     9use base 'Vote::DB::common'; 
    1010 
    1111=head1 NAME 
     
    2424    bless { 
    2525        dbstring => $dbstring, 
    26         db => _newdb($dbstring), 
     26        db => Vote::DB::common::_newdb($dbstring), 
    2727    }, $class; 
    28 } 
    29  
    30 sub _newdb { 
    31     my ($dbstring) = @_; 
    32     my $db = DBI->connect( 
    33         'dbi:Pg:' . $dbstring, 
    34         undef, undef, 
    35         { 
    36             RaiseError => 0, 
    37             AutoCommit => 0, 
    38             PrintWarn => 0, 
    39             PrintError => 1, 
    40         } 
    41     ) or return; 
    42     $db->do(q{set DATESTYLE to 'DMY'}); 
    43     return $db; 
    44 } 
    45  
    46 sub db { 
    47     my ($self) = @_; 
    48     return $_[0]->{db} && $_[0]->{db}->ping 
    49         ? $_[0]->{db} 
    50         : $_[0]->_newdb($self->{dbstring}); 
    51 } 
    52  
    53 sub mail_header { 
    54     return( 
    55         'Content-Type' => 'text/plain; charset=UTF-8; format=flowed', 
    56         'Content-Transfer-Encoding' => '8bit', 
    57         'X-Epoll-version' => $Vote::VERSION, 
    58     ); 
    59 } 
    60  
    61 sub random_string { 
    62     my $lenght = $_[-1] || 8; 
    63  
    64     return join('', map { ('a'..'z', 'A'..'Z', 0..9)[rand 62] } (1..$lenght)); 
    65 } 
    66  
    67 sub gen_enc_passwd { 
    68     my ($self, $passwd) = @_; 
    69  
    70     $passwd ||= random_string(8); 
    71     return(crypt($passwd, '$1$' . random_string(8) . '$')); 
    72 } 
    73  
    74 sub dbtime { 
    75     my ($self) = @_; 
    76     my $sth = $self->db->prepare( 
    77         q{select to_char(now(), 'DD/MM/YYYY HH24:MI:SS') as d} 
    78     ); 
    79  
    80     $sth->execute(); 
    81     my $res = $sth->fetchrow_hashref; 
    82     $sth->finish; 
    83     $res->{d}; 
    8428} 
    8529 
Note: See TracChangeset for help on using the changeset viewer.