r62507@cain (orig r402): groditi | 2007-11-14 18:33:11 +0000
[catagits/Reaction.git] / lib / Reaction / InterfaceModel / Reflector / DBIC.pm
index fca7fa5..8df719b 100644 (file)
@@ -29,26 +29,28 @@ class DBIC, which {
   has builtin_object_actions     => (isa => "HashRef", is => "rw", lazy_build => 1);
   has builtin_collection_actions => (isa => "HashRef", is => "rw", lazy_build => 1);
 
-  implements build_object_actions     => as { {} };
-  implements build_collection_actions => as { {} };
+  implements _build_object_actions     => as { {} };
+  implements _build_collection_actions => as { {} };
 
-  implements build_default_object_actions     => as { [ qw/Update Delete/ ] };
-  implements build_default_collection_actions => as { [ 'Create' ] };
+  implements _build_default_object_actions     => as { [ qw/Update Delete/ ] };
+  implements _build_default_collection_actions => as { [ qw/Create DeleteAll/ ] };
 
-  implements build_builtin_object_actions => as {
+  implements _build_builtin_object_actions => as {
     {
       Update => { name => 'Update', base => Update },
       Delete => { name => 'Delete', base => Delete, attributes => [] },
     };
   };
 
-  implements build_builtin_collection_actions => as {
-    { Create => {name => 'Create', base => Create } };
-    { DeleteAll => {name => 'DeleteAll', base => DeleteAll } };
+  implements _build_builtin_collection_actions => as {
+    {
+      Create    => {name => 'Create',    base => Create    },
+      DeleteAll => {name => 'DeleteAll', base => DeleteAll, attributes => [] }
+    };
   };
 
   implements _all_object_actions => as {
-    my $self = shift;
+   my $self = shift;
     return $self->merge_hashes
       ($self->builtin_object_actions, $self->object_actions);
   };
@@ -159,7 +161,7 @@ class DBIC, which {
       unless($model && $schema);
     Class::MOP::load_class( $base );
     Class::MOP::load_class( $schema );
-    my $meta = eval {Class::MOP::load_class($model); } ?
+    my $meta = eval { Class::MOP::load_class($model); } ?
       $model->meta : $base->meta->create($model, superclasses => [ $base ]);
 
     # sources => undef,              #default to qr/./
@@ -299,7 +301,7 @@ class DBIC, which {
     unless( $reader ){
       $reader = $source;
       $reader =~ s/([a-z0-9])([A-Z])/${1}_${2}/g ;
-      $reader = lc($reader) . "_collection";
+      $reader = lc($reader) . "_collection"; #XXX change to not use  _collection ?
     }
     unless( $dm_name ){
       my @haystack = $meta->domain_models;
@@ -378,7 +380,7 @@ class DBIC, which {
 
     my $make_immutable = $meta->is_immutable || $self->make_classes_immutable;;
     $meta->make_mutable if $meta->is_immutable;
-    $meta->add_method(_build_im_class => sub{ $object } );
+    $meta->add_method(_build__im_class => sub{ $object } );
     #XXX as a default pass the domain model as a target_model until i come up with something
     #better through the coercion method
     my $def_act_args = sub {
@@ -696,8 +698,7 @@ class DBIC, which {
 
       #proper collections will remove the result_class uglyness.
       $attr_opts{default} = sub {
-        my $rs = shift->$dm_name->result_source->related_source($link_table)
-          ->related_source($mm_name)->resultset;
+        my $rs = shift->$dm_name->related_resultset($link_table)->related_resultset($mm_name);
         return $attr_opts{isa}->new(_source_resultset => $rs);
       };
     } else {
@@ -843,6 +844,7 @@ class DBIC, which {
       };
     }
     #use Data::Dumper;
+    #print STDERR "\n" .$attr_name ." - ". $object . "\n";
     #print STDERR Dumper(\%attr_opts);
     return \%attr_opts;
   };