changed search api to less magic but working version
phaylon [Mon, 29 Jun 2009 16:28:01 +0000 (16:28 +0000)]
lib/Reaction/InterfaceModel/Action/Search/UpdateSpec.pm

index 070b9df..cec863d 100644 (file)
@@ -10,18 +10,37 @@ use namespace::clean -except => 'meta';
 
 extends 'Reaction::InterfaceModel::Action';
 
-my %ReflectionCache;
-
-method build_reflected_search_spec () {
-    confess sprintf "Class %s did not override the build_reflected_search_spec method", ref($self) || $self;
-}
-
 method _reflection_info () {
-    $ReflectionCache{ ref($self) || $self }
-        ||= reflect_attributes_from_target $self->build_reflected_search_spec;
+    confess sprintf "Class %s did not override the _reflection_info method", 
+        ref($self) || $self;
 }
 
 with 'Reaction::InterfaceModel::Search::UpdateSpec';
 
 1;
 
+=head1 NAME
+
+Reaction::InterfaceModel::Action::Search::UpdateSpec - Update search specification
+
+=head1 SYNOPSIS
+
+  package MyApp::InterfaceModel::UpdateSearchSpec;
+  use Reaction::Class;
+  use Reaction::InterfaceModel::Reflector::SearchSpec;
+
+  use aliased 'MyApp::InterfaceModel::SearchSpec';
+
+  use namespace::autoclean;
+
+  extends 'Reaction::InterfaceModel::Action::Search::UpdateSpec';
+
+  # this will reflect the search spec as update spec in the current
+  # class.
+  my $info = reflect_attributes_from_target SearchSpec;
+
+  sub _reflection_info { $info }
+
+  1;
+
+=cut