DBIx-Class-Bootstrap-Simple

 view release on metacpan or  search on metacpan

lib/DBIx/Class/Bootstrap/Simple.pm  view on Meta::CPAN

       objects => {
           # class must have an inflate and deflate method
           # inflate method is Class->inflate(value_to_inflate)
           # deflate is $yourinflated_object->deflate;
           stash => 'YourApp::DB::DataType::Stash',
       },
       references  => {
           company => {
               class          => 'YourApp::DB::Company',
               column         => 'company_id',
               cascade_update => 1, #defaults to 0
               cascade_delete => 1, #defaults to 0
               cascade_copy   => 1, #defaults to 0

           },
           password => {
               class  => 'YourApp::DB::Password',
               column => 'password_id',
           },
       }
   );

Your application:

lib/DBIx/Class/Bootstrap/Simple.pm  view on Meta::CPAN

       objects => {
           # class must have an inflate and deflate method
           # inflate method is Class->inflate(value_to_inflate)
           # deflate is $yourinflated_object->deflate;
           stash => 'YourApp::DB::DataType::Stash',
       },
       references  => {
           company => {
               class          => 'YourApp::DB::Company',
               column         => 'company_id',
               cascade_update => 1, # defaults to 0
               cascade_delete => 1, # defaults to 0
               cascade_copy   => 1, # defaults to 0

           },
           password => {
               class  => 'YourApp::DB::Password',
               column => 'password_id',
           },
           banjos => {
               class  => 'YourApp::DB::Banjos',
               column => 'user_id', 
               # or, if mapping columns differ

lib/DBIx/Class/Bootstrap/Simple.pm  view on Meta::CPAN

            my $remote_col = $reference->{foreign_column} || $reference->{column};
            my $table      = $table_conf->{table};

            {
                if ($reference->{has_many})
                {
                    $module->has_many(
                        $rkey, $reference->{class},
                        { "foreign.$remote_col", "self.$local_col" },
                        {
                            cascade_delete => $reference->{cascade_delete} || 0,
                            cascade_copy   => $reference->{cascade_copy}   || 0,
                            cascade_update => $reference->{cascade_update} || 0,
                            accessor       => 'multi',
                        },
                    );
                    $reference->{class}->belongs_to( $remote_col => $module );
                }
                else
                {
                    my $meth = $reference->{might_have} ? 'might_have' : 'has_one';

                    $module->$meth(
                        $local_col, $reference->{class},
                        { "foreign.$remote_col", "self.$local_col" },
                        {
                            cascade_delete => $reference->{cascade_delete} || 0,
                            cascade_copy   => $reference->{cascade_copy}   || 0,
                            cascade_update => $reference->{cascade_update} || 0,
                            accessor       => 'filter',
                        },
                    );
                }
            }
        }
    }
}

sub _nonlocal 



( run in 0.465 second using v1.01-cache-2.11-cpan-49f99fa48dc )