Show
Ignore:
Timestamp:
10/20/08 22:26:15 (5 years ago)
Author:
kamipo
Message:

lang/perl/DBIx-Class-TimeStamp?-Auto: bug fix

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/DBIx-Class-TimeStamp-Auto/lib/DBIx/Class/TimeStamp/Auto.pm

    r19251 r21707  
    1111sub import { 
    1212    my $class = shift; 
    13     my %columns = @_; 
     13    my %columns = ref $_[0] eq 'HASH' ? %{$_[0]} : @_; 
    1414 
    1515    if (my $create = $columns{auto_create_datetime_columns}) { 
     
    3939    return if ref $attrs ne 'HASH'; 
    4040 
     41    my $now; 
    4142    my $timestamp_class = $self->timestamp_class; 
    42     my $now = $timestamp_class->get_current_datetime; 
    4343 
    44     defined $attrs->{$_} || $self->is_inflate_datetime_column($_) 
    45         and $attrs->{$_} = $now for 
     44    for ( 
    4645        @{$timestamp_class->auto_create_datetime_columns}, 
    47         @{$timestamp_class->auto_update_datetime_columns}; 
     46        @{$timestamp_class->auto_update_datetime_columns} 
     47    ) { 
     48        $attrs->{$_} = $now ||= $timestamp_class->get_current_datetime 
     49            if !defined $attrs->{$_} and $self->is_inflate_datetime_column($_); 
     50    } 
    4851}; 
    4952 
     
    5356    return if ref $attrs ne 'HASH'; 
    5457 
     58    my $now; 
    5559    my $timestamp_class = $self->timestamp_class; 
    56     my $now = $timestamp_class->get_current_datetime; 
    5760 
    58     defined $attrs->{$_} || $self->is_inflate_datetime_column($_) 
    59         and $attrs->{$_} = $now for 
    60         @{$timestamp_class->auto_update_datetime_columns}; 
     61    for ( 
     62        @{$timestamp_class->auto_update_datetime_columns} 
     63    ) { 
     64        $attrs->{$_} = $now ||= $timestamp_class->get_current_datetime 
     65            if !defined $attrs->{$_} and $self->is_inflate_datetime_column($_); 
     66    } 
    6167}; 
    6268 
     
    8793  
    8894 use base 'DBIx::Class::Schema'; 
    89  use DBIx::Class::TimeStamp::Auto 
     95 use DBIx::Class::TimeStamp::Auto { 
    9096     auto_create_datetime_columns => [qw/created_at/], 
    9197     auto_update_datetime_columns => [qw/updated_at/], 
    92      datetime_timezone => 'Asia/Tokyo'; 
     98     datetime_timezone => 'Asia/Tokyo' 
     99 }; 
    93100  
    94101 __PACKAGE__->load_classes;