Changeset 23152

Show
Ignore:
Timestamp:
11/10/08 22:23:39 (5 years ago)
Author:
yappo
Message:

add Driver::Logic

Location:
lang/perl/Data-Model/trunk
Files:
3 added
1 removed
3 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Data-Model/trunk/lib/Data/Model.pm

    r23142 r23152  
    119119 
    120120    my $query = _get_query_args($schema, @_); 
     121    local $schema->{schema_obj} = $self; 
    121122    my($iterator, $iterator_options) = $schema->{driver}->get( $schema, @{ $query } ); 
    122123    return unless $iterator; 
     
    193194    # $columns deflate 
    194195 
     196    local $schema->{schema_obj} = $self; 
    195197    my $result = $schema->{driver}->set( $schema, $key_array => $columns, @_ ); 
    196198    return unless $result; 
     
    221223    return unless $query; 
    222224 
     225    local $schema->{schema_obj} = $self; 
    223226    $schema->{driver}->delete( $schema, @{ $query } ); 
    224227} 
  • lang/perl/Data-Model/trunk/lib/Data/Model/Driver.pm

    r23125 r23152  
    1111 
    1212sub init {} 
     13sub init_model {} 
    1314 
    1415my $KEYSEPARATE = "\0"; 
  • lang/perl/Data-Model/trunk/lib/Data/Model/Schema.pm

    r23125 r23152  
    2727my $CALLER = undef; 
    2828sub model ($$;%) { 
    29     my($name, $schema, %args) = @_; 
     29    my($name, $schema_code, %args) = @_; 
    3030    my $caller = caller; 
    3131 
     
    3535    @{"$pkg\::ISA"} = ( 'Data::Model::Row' ); 
    3636 
    37     $caller->__properties->{schema}->{$name} = +{ 
    38         driver   => undef, 
    39         model    => $name, 
    40         class    => $pkg, 
    41         column   => {}, 
    42         index    => {}, 
    43         unique   => {}, 
    44         key      => undef, 
    45         triggers => {}, 
    46         options  => +{}, 
     37    my $schema = $caller->__properties->{schema}->{$name} = +{ 
     38        driver       => undef, 
     39        schema_class => $caller, 
     40        model        => $name, 
     41        class        => $pkg, 
     42        column       => {}, 
     43        index        => {}, 
     44        unique       => {}, 
     45        key          => undef, 
     46        triggers     => {}, 
     47        options      => +{}, 
    4748    }; 
    4849 
    4950    $caller->__properties->{__process_tmp}->{name} = $name; 
    5051    $CALLER = $caller; 
    51     $schema->(); 
     52    $schema_code->(); 
    5253    $CALLER = undef; 
     54 
     55    if (exists $schema->{driver}) { 
     56        $schema->{driver}->init_model($name, $schema); 
     57    } 
    5358} 
    5459sub schema (&) { shift }