aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.PL2
-rw-r--r--lib/Reaction/Class.pm2
-rw-r--r--lib/Reaction/InterfaceModel/Collection.pm4
-rw-r--r--lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm6
-rw-r--r--lib/Reaction/InterfaceModel/Collection/Virtual/ResultSet.pm2
-rw-r--r--lib/Reaction/InterfaceModel/Object.pm4
-rw-r--r--lib/Reaction/InterfaceModel/Reflector/DBIC.pm19
-rw-r--r--lib/Reaction/Meta/Attribute.pm40
-rw-r--r--lib/Reaction/Meta/InterfaceModel/Action/ParameterAttribute.pm2
-rw-r--r--lib/Reaction/UI/CRUDController.pm4
-rw-r--r--lib/Reaction/UI/LayoutSet.pm2
-rw-r--r--lib/Reaction/UI/LayoutSet/TT.pm2
-rw-r--r--lib/Reaction/UI/View.pm20
-rw-r--r--lib/Reaction/UI/ViewPort.pm2
-rw-r--r--lib/Reaction/UI/ViewPort/ActionForm.pm70
-rw-r--r--lib/Reaction/UI/ViewPort/DisplayField.pm5
-rw-r--r--lib/Reaction/UI/ViewPort/DisplayField/Boolean.pm2
-rw-r--r--lib/Reaction/UI/ViewPort/DisplayField/Collection.pm4
-rw-r--r--lib/Reaction/UI/ViewPort/DisplayField/DateTime.pm2
-rw-r--r--lib/Reaction/UI/ViewPort/DisplayField/List.pm6
-rw-r--r--lib/Reaction/UI/ViewPort/DisplayField/RelatedObject.pm4
-rw-r--r--lib/Reaction/UI/ViewPort/Field.pm4
-rw-r--r--lib/Reaction/UI/ViewPort/Field/ChooseMany.pm2
-rw-r--r--lib/Reaction/UI/ViewPort/Field/ChooseOne.pm4
-rw-r--r--lib/Reaction/UI/ViewPort/Field/DateTime.pm2
-rw-r--r--lib/Reaction/UI/ViewPort/Field/TimeRange.pm2
-rw-r--r--lib/Reaction/UI/ViewPort/GridView.pm10
-rw-r--r--lib/Reaction/UI/ViewPort/GridView/Action.pm2
-rw-r--r--lib/Reaction/UI/ViewPort/GridView/Entity.pm42
-rw-r--r--lib/Reaction/UI/ViewPort/GridView/Role/Actions.pm4
-rw-r--r--lib/Reaction/UI/ViewPort/GridView/Role/Entity/Actions.pm4
-rw-r--r--lib/Reaction/UI/ViewPort/GridView/Role/Order.pm4
-rw-r--r--lib/Reaction/UI/ViewPort/GridView/Role/Pager.pm15
-rw-r--r--lib/Reaction/UI/ViewPort/ListView.pm2
-rw-r--r--lib/Reaction/UI/ViewPort/ObjectView.pm58
-rw-r--r--lib/Reaction/UI/ViewPort/TimeRangeCollection.pm34
-rw-r--r--lib/Reaction/UI/Widget/Field.pm8
-rw-r--r--lib/Reaction/UI/Window.pm14
-rw-r--r--t/lib/RTest/InterfaceModel/Reflector/DBIC.pm19
39 files changed, 207 insertions, 227 deletions
diff --git a/Makefile.PL b/Makefile.PL
index aec5ca2..db1b95f 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -15,7 +15,7 @@ requires 'Test::Class' => 0;
requires 'Test::Memory::Cycle' => 0;
requires 'DBIx::Class' => '0.07001';
requires 'SQL::Translator' => '0.08';
-requires 'Moose' => '0.22';
+requires 'Moose' => '0.28';
requires 'aliased' => 0;
requires 'DateTime';
requires 'DateTime::Span';
diff --git a/lib/Reaction/Class.pm b/lib/Reaction/Class.pm
index b2c0ad9..549ee15 100644
--- a/lib/Reaction/Class.pm
+++ b/lib/Reaction/Class.pm
@@ -129,7 +129,7 @@ sub do_class_sub {
#print STDERR "$package \n";
#print STDERR $package->meta->blessed, " \n";
$package->meta->make_immutable;
-# (inline_accessor => 0, inline_destructor => 0,inline_constructor => 0,);
+ # (inline_accessor => 0, inline_destructor => 0,inline_constructor => 0,);
}
sub setup_and_cleanup {
diff --git a/lib/Reaction/InterfaceModel/Collection.pm b/lib/Reaction/InterfaceModel/Collection.pm
index 73f2f4e..9b962bd 100644
--- a/lib/Reaction/InterfaceModel/Collection.pm
+++ b/lib/Reaction/InterfaceModel/Collection.pm
@@ -33,7 +33,7 @@ class Collection is "Reaction::InterfaceModel::Object", which {
metaclass => DomainModelAttribute,
);
- implements _build_collection_store => as { [] };
+ implements _build__collection_store => as { [] };
implements members => as {
my $self = shift;
@@ -112,7 +112,7 @@ presently stored. Has a clearer of C<_clear_collection_store> and a predicate of
=head1 PRIVATE METHODS
-_build_collection_store
+_build__collection_store
Builder method for attribute_collection_store, returns an empty arrayref
diff --git a/lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm b/lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm
index efddcba..ee32997 100644
--- a/lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm
+++ b/lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm
@@ -30,14 +30,14 @@ role Base, which {
#};
#Oh man. I have a bad feeling about this one.
- implements _build_im_class => as {
+ implements _build__im_class => as {
my $self = shift;
- my $class = blessed $self || $self;
+ my $class = blessed($self) || $self;
$class =~ s/::Collection$//;
return $class;
};
- implements _build_collection_store => as {
+ implements _build__collection_store => as {
my $self = shift;
my $im_class = $self->_im_class;
[ $self->_source_resultset->search({}, {result_class => $im_class})->all ];
diff --git a/lib/Reaction/InterfaceModel/Collection/Virtual/ResultSet.pm b/lib/Reaction/InterfaceModel/Collection/Virtual/ResultSet.pm
index 3878992..89e55d6 100644
--- a/lib/Reaction/InterfaceModel/Collection/Virtual/ResultSet.pm
+++ b/lib/Reaction/InterfaceModel/Collection/Virtual/ResultSet.pm
@@ -9,7 +9,7 @@ class ResultSet is "Reaction::InterfaceModel::Collection::Virtual", which {
"Reaction::InterfaceModel::Collection::DBIC::Role::Where";
- implements _build_default_action_class_prefix => as {
+ implements _build__default_action_class_prefix => as {
shift->_im_class;
};
diff --git a/lib/Reaction/InterfaceModel/Object.pm b/lib/Reaction/InterfaceModel/Object.pm
index 48d46ca..fce4fd2 100644
--- a/lib/Reaction/InterfaceModel/Object.pm
+++ b/lib/Reaction/InterfaceModel/Object.pm
@@ -19,7 +19,7 @@ class Object which {
);
#DBIC::Collection would override this to use result_class for example
- implements _build_default_action_class_prefix => as {
+ implements _build__default_action_class_prefix => as {
my $self = shift;
ref $self || $self;
};
@@ -40,7 +40,7 @@ class Object which {
#little trick in case we call it in class context!
my $prefix = ref $self ?
$self->_default_action_class_prefix :
- $self->_build_default_action_class_prefix;
+ $self->_build__default_action_class_prefix;
return join "::", $prefix, 'Action', $action;
};
diff --git a/lib/Reaction/InterfaceModel/Reflector/DBIC.pm b/lib/Reaction/InterfaceModel/Reflector/DBIC.pm
index 7e81b10..8df719b 100644
--- a/lib/Reaction/InterfaceModel/Reflector/DBIC.pm
+++ b/lib/Reaction/InterfaceModel/Reflector/DBIC.pm
@@ -29,20 +29,20 @@ 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 { [ qw/Create DeleteAll/ ] };
+ 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 {
+ implements _build_builtin_collection_actions => as {
{
Create => {name => 'Create', base => Create },
DeleteAll => {name => 'DeleteAll', base => DeleteAll, attributes => [] }
@@ -50,7 +50,7 @@ class DBIC, which {
};
implements _all_object_actions => as {
- my $self = shift;
+ my $self = shift;
return $self->merge_hashes
($self->builtin_object_actions, $self->object_actions);
};
@@ -161,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/./
@@ -380,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 {
@@ -844,6 +844,7 @@ class DBIC, which {
};
}
#use Data::Dumper;
+ #print STDERR "\n" .$attr_name ." - ". $object . "\n";
#print STDERR Dumper(\%attr_opts);
return \%attr_opts;
};
diff --git a/lib/Reaction/Meta/Attribute.pm b/lib/Reaction/Meta/Attribute.pm
index 01540e0..16e5ed9 100644
--- a/lib/Reaction/Meta/Attribute.pm
+++ b/lib/Reaction/Meta/Attribute.pm
@@ -7,39 +7,26 @@ extends 'Moose::Meta::Attribute';
#is => 'Bool' ? or leave it open
has lazy_fail =>
(is => 'ro', reader => 'is_lazy_fail', required => 1, default => 0);
-has lazy_build =>
- (is => 'ro', reader => 'is_lazy_build', required => 1, default => 0);
around _process_options => sub {
my $super = shift;
my ($class, $name, $options) = @_;
- my $fail = $options->{lazy_fail}; #will this autovivify?
- my $build = $options->{lazy_build};
+ my $fail = $options->{lazy_fail};
- if ( $fail || $build) {
+ if ( $fail ) {
confess("You may not use both lazy_build and lazy_fail for one attribute")
- if $fail && $build;
- confess("You may not supply a default value when using lazy_build or lazy_fail")
- if exists $options->{default};
+ if $fail && $options->{lazy_build};
$options->{lazy} = 1;
$options->{required} = 1;
-
- my $builder = ($name =~ /^_/) ? "_build${name}" : "build_${name}";
- $options->{default} = $fail ?
- sub { confess "${name} must be provided before calling reader" } :
- sub{ shift->$builder };
-
- $options->{clearer} ||= ($name =~ /^_/) ? "_clear${name}" : "clear_${name}"
- if $build;
+ $options->{default} = sub { confess "${name} must be provided before calling reader" };
}
#we are using this everywhere so might as well move it here.
$options->{predicate} ||= ($name =~ /^_/) ? "_has${name}" : "has_${name}"
if !$options->{required} || $options->{lazy};
-
$super->($class, $name, $options);
};
@@ -57,14 +44,6 @@ Reaction::Meta::Attribute
has description => (is => 'rw', isa => 'Str', lazy_fail => 1);
- # OR
- has description => (is => 'rw', isa => 'Str', lazy_build => 1);
- sub build_description{ "My Description" }
-
- # OR
- has _description => (is => 'rw', isa => 'Str', lazy_build => 1);
- sub _build_description{ "My Description" }
-
=head1 Method-naming conventions
Reaction::Meta::Attribute will never override the values you set for method names,
@@ -76,10 +55,10 @@ either "_has" or "_build". Otherwise the method names will be in the form of the
attribute names preceeded by "has_" or "build_". e.g.
#auto generates "_has_description" and expects "_build_description"
- has _description => (is => 'rw', isa => 'Str', lazy_build => 1);
+ has _description => (is => 'rw', isa => 'Str', lazy_fail => 1);
#auto generates "has_description" and expects "build_description"
- has description => (is => 'rw', isa => 'Str', lazy_build => 1);
+ has description => (is => 'rw', isa => 'Str', lazy_fail => 1);
=head2 Predicate generation
@@ -88,12 +67,7 @@ generated for them if one is not already specified.
=head2 lazy_fail
-=head2 lazy_build
-
-lazy_build will lazily build to the return value of a user-supplied builder sub
- The builder sub will recieve C<$self> as the first argument.
-
-lazy_fail will simply fail if it is called without first having set the value.
+lazy_fail will fail if it is called without first having set the value.
=head1 AUTHORS
diff --git a/lib/Reaction/Meta/InterfaceModel/Action/ParameterAttribute.pm b/lib/Reaction/Meta/InterfaceModel/Action/ParameterAttribute.pm
index 8a52409..4bef225 100644
--- a/lib/Reaction/Meta/InterfaceModel/Action/ParameterAttribute.pm
+++ b/lib/Reaction/Meta/InterfaceModel/Action/ParameterAttribute.pm
@@ -16,6 +16,8 @@ class ParameterAttribute is 'Reaction::Meta::Attribute', which {
my ($self, $object, $value) = @_;
confess "Can't check_valid_value when no valid_values set"
unless $self->has_valid_values;
+ confess join " - ", blessed($object), $self->name
+ unless ref $self->valid_values;
my $valid = $self->valid_values->($object, $self);
if ($self->type_constraint
&& ($self->type_constraint->name eq 'ArrayRef'
diff --git a/lib/Reaction/UI/CRUDController.pm b/lib/Reaction/UI/CRUDController.pm
index 1ff7d88..554d588 100644
--- a/lib/Reaction/UI/CRUDController.pm
+++ b/lib/Reaction/UI/CRUDController.pm
@@ -15,7 +15,7 @@ has 'collection_name' => (isa => 'Str', is => 'rw', required => 1);
has action_viewport_map => (isa => 'HashRef', is => 'rw', lazy_build => 1);
has action_viewport_args => (isa => 'HashRef', is => 'rw', lazy_build => 1);
-sub build_action_viewport_map {
+sub _build_action_viewport_map {
return {
list => ListView,
view => ObjectView,
@@ -26,7 +26,7 @@ sub build_action_viewport_map {
};
}
-sub build_action_viewport_args {
+sub _build_action_viewport_args {
my $self = shift;
return { list =>
{ action_prototypes =>
diff --git a/lib/Reaction/UI/LayoutSet.pm b/lib/Reaction/UI/LayoutSet.pm
index b19c92b..639af3b 100644
--- a/lib/Reaction/UI/LayoutSet.pm
+++ b/lib/Reaction/UI/LayoutSet.pm
@@ -12,7 +12,7 @@ class LayoutSet which {
has 'source_file' => (is => 'rw', lazy_fail => 1);
has 'file_extension'=> (isa => 'Str', is => 'rw', lazy_build => 1);
- implements build_file_extension => as { 'html' };
+ implements _build_file_extension => as { 'html' };
implements 'BUILD' => as {
my ($self, $args) = @_;
diff --git a/lib/Reaction/UI/LayoutSet/TT.pm b/lib/Reaction/UI/LayoutSet/TT.pm
index b77d0d5..e5430f0 100644
--- a/lib/Reaction/UI/LayoutSet/TT.pm
+++ b/lib/Reaction/UI/LayoutSet/TT.pm
@@ -8,7 +8,7 @@ class TT is LayoutSet, which {
has 'tt_view' => (is => 'rw', isa => View, lazy_fail => 1);
- implements build_file_extension => as { 'tt' };
+ implements _build_file_extension => as { 'tt' };
implements 'BUILD' => as {
my ($self, $args) = @_;
diff --git a/lib/Reaction/UI/View.pm b/lib/Reaction/UI/View.pm
index 77d0699..1f7c00c 100644
--- a/lib/Reaction/UI/View.pm
+++ b/lib/Reaction/UI/View.pm
@@ -19,6 +19,16 @@ class View which {
has 'rendering_context_class' => (is => 'ro', lazy_build => 1);
+ implements '_build_layout_set_class' => as {
+ my ($self) = @_;
+ return $self->find_related_class('LayoutSet');
+ };
+
+ implements '_build_rendering_context_class' => as {
+ my ($self) = @_;
+ return $self->find_related_class('RenderingContext');
+ };
+
implements 'COMPONENT' => as {
my ($class, $app, $args) = @_;
return $class->new(%{$args||{}}, app => $app);
@@ -118,11 +128,6 @@ class View which {
confess "Unable to find related ${rel} class for ${own_class}";
};
- implements 'build_layout_set_class' => as {
- my ($self) = @_;
- return $self->find_related_class('LayoutSet');
- };
-
implements 'layout_set_args_for' => as {
my ($self, $name) = @_;
return (name => $name, search_path => $self->layout_search_path);
@@ -146,11 +151,6 @@ class View which {
);
};
- implements 'build_rendering_context_class' => as {
- my ($self) = @_;
- return $self->find_related_class('RenderingContext');
- };
-
implements 'rendering_context_args_for' => as {
return ();
};
diff --git a/lib/Reaction/UI/ViewPort.pm b/lib/Reaction/UI/ViewPort.pm
index 16a0068..03f915d 100644
--- a/lib/Reaction/UI/ViewPort.pm
+++ b/lib/Reaction/UI/ViewPort.pm
@@ -17,7 +17,7 @@ class ViewPort which {
has ctx => (isa => 'Catalyst', is => 'ro', required => 1);
has column_order => (is => 'rw');
- implements build_layout => as {
+ implements _build_layout => as {
'';
};
diff --git a/lib/Reaction/UI/ViewPort/ActionForm.pm b/lib/Reaction/UI/ViewPort/ActionForm.pm
index 373b81d..484b5c6 100644
--- a/lib/Reaction/UI/ViewPort/ActionForm.pm
+++ b/lib/Reaction/UI/ViewPort/ActionForm.pm
@@ -64,18 +64,18 @@ class ActionForm is 'Reaction::UI::ViewPort', which {
my @field_map;
my $action = $self->action;
foreach my $attr ($action->parameter_attributes) {
- push(@field_map, $self->build_fields_for($attr => $args));
+ push(@field_map, $self->_build_fields_for($attr => $args));
}
$self->_field_map({ @field_map });
}
$self->close_label($self->close_label_close);
};
- implements build_fields_for => as {
+ implements _build_fields_for => as {
my ($self, $attr, $args) = @_;
my $attr_name = $attr->name;
#TODO: DOCUMENT ME!!!!!!!!!!!!!!!!!
- my $builder = "build_fields_for_name_${attr_name}";
+ my $builder = "_build_fields_for_name_${attr_name}";
my @fields;
if ($self->can($builder)) {
@fields = $self->$builder($attr, $args); # re-use coderef from can()
@@ -90,7 +90,7 @@ class ActionForm is 'Reaction::UI::ViewPort', which {
foreach my $class ($name->meta->class_precedence_list) {
my $mangled_name = $class;
$mangled_name =~ s/:+/_/g;
- my $builder = "build_fields_for_type_${mangled_name}";
+ my $builder = "_build_fields_for_type_${mangled_name}";
if ($self->can($builder)) {
@fields = $self->$builder($attr, $args);
last CONSTRAINT;
@@ -103,7 +103,7 @@ class ActionForm is 'Reaction::UI::ViewPort', which {
}
my $mangled_name = $name;
$mangled_name =~ s/:+/_/g;
- my $builder = "build_fields_for_type_${mangled_name}";
+ my $builder = "_build_fields_for_type_${mangled_name}";
if ($self->can($builder)) {
@fields = $self->$builder($attr, $args);
last CONSTRAINT;
@@ -112,7 +112,7 @@ class ActionForm is 'Reaction::UI::ViewPort', which {
$constraint = $constraint->parent;
}
if (!defined($constraint)) {
- confess "Can't build field ${attr_name} of type ${base_name} without $builder method or build_fields_for_type_<type> method for type or any supertype";
+ confess "Can't build field ${attr_name} of type ${base_name} without $builder method or _build_fields_for_type_<type> method for type or any supertype";
}
} else {
confess "Can't build field ${attr} without $builder method or type constraint";
@@ -120,11 +120,11 @@ class ActionForm is 'Reaction::UI::ViewPort', which {
return @fields;
};
- implements build_field_map => as {
+ implements _build_field_map => as {
confess "Lazy field map building not supported by default";
};
- implements build_ordered_fields => as {
+ implements _build_ordered_fields => as {
my $self = shift;
my $ordered = $self->sort_by_spec($self->column_order, [keys %{$self->_field_map}]);
return [@{$self->_field_map}{@$ordered}];
@@ -206,7 +206,7 @@ class ActionForm is 'Reaction::UI::ViewPort', which {
}
};
- implements build_simple_field => as {
+ implements _build_simple_field => as {
my ($self, $class, $attr, $args) = @_;
my $attr_name = $attr->name;
my %extra;
@@ -224,72 +224,72 @@ class ActionForm is 'Reaction::UI::ViewPort', which {
return ($attr_name => $field);
};
- implements build_fields_for_type_Num => as {
+ implements _build_fields_for_type_Num => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(Number, $attr, $args);
+ return $self->_build_simple_field(Number, $attr, $args);
};
- implements build_fields_for_type_Int => as {
+ implements _build_fields_for_type_Int => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(Number, $attr, $args);
+ return $self->_build_simple_field(Number, $attr, $args);
};
- implements build_fields_for_type_Bool => as {
+ implements _build_fields_for_type_Bool => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(Boolean, $attr, $args);
+ return $self->_build_simple_field(Boolean, $attr, $args);
};
- implements build_fields_for_type_File => as {
+ implements _build_fields_for_type_File => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(File, $attr, $args);
+ return $self->_build_simple_field(File, $attr, $args);
};
- implements build_fields_for_type_Str => as {
+ implements _build_fields_for_type_Str => as {
my ($self, $attr, $args) = @_;
if ($attr->has_valid_values) { # There's probably a better way to do this
- return $self->build_simple_field(ChooseOne, $attr, $args);
+ return $self->_build_simple_field(ChooseOne, $attr, $args);
}
- return $self->build_simple_field(Text, $attr, $args);
+ return $self->_build_simple_field(Text, $attr, $args);
};
- implements build_fields_for_type_SimpleStr => as {
+ implements _build_fields_for_type_SimpleStr => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(String, $attr, $args);
+ return $self->_build_simple_field(String, $attr, $args);
};
- implements build_fields_for_type_Password => as {
+ implements _build_fields_for_type_Password => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(Password, $attr, $args);
+ return $self->_build_simple_field(Password, $attr, $args);
};
- implements build_fields_for_type_DateTime => as {
+ implements _build_fields_for_type_DateTime => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(DateTime, $attr, $args);
+ return $self->_build_simple_field(DateTime, $attr, $args);
};
- implements build_fields_for_type_Enum => as {
+ implements _build_fields_for_type_Enum => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(ChooseOne, $attr, $args);
+ return $self->_build_simple_field(ChooseOne, $attr, $args);
};
#implements build_fields_for_type_Reaction_InterfaceModel_Object => as {
- implements build_fields_for_type_DBIx_Class_Row => as {
+ implements _build_fields_for_type_DBIx_Class_Row => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(ChooseOne, $attr, $args);
+ return $self->_build_simple_field(ChooseOne, $attr, $args);
};
- implements build_fields_for_type_ArrayRef => as {
+ implements _build_fields_for_type_ArrayRef => as {
my ($self, $attr, $args) = @_;
if ($attr->has_valid_values) {
- return $self->build_simple_field(ChooseMany, $attr, $args)
+ return $self->_build_simple_field(ChooseMany, $attr, $args)
} else {
- return $self->build_simple_field(HiddenArray, $attr, $args)
+ return $self->_build_simple_field(HiddenArray, $attr, $args)
}
};
- implements build_fields_for_type_DateTime_Spanset => as {
+ implements _build_fields_for_type_DateTime_Spanset => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(TimeRange, $attr, $args);
+ return $self->_build_simple_field(TimeRange, $attr, $args);
};
no Moose;
diff --git a/lib/Reaction/UI/ViewPort/DisplayField.pm b/lib/Reaction/UI/ViewPort/DisplayField.pm
index 9f9f727..b8269dc 100644
--- a/lib/Reaction/UI/ViewPort/DisplayField.pm
+++ b/lib/Reaction/UI/ViewPort/DisplayField.pm
@@ -20,7 +20,6 @@ class DisplayField is 'Reaction::UI::ViewPort', which {
has value => (
is => 'rw', lazy_build => 1, trigger_adopt('value'),
- clearer => 'clear_value',
);
has label => (isa => 'Str', is => 'rw', lazy_build => 1);
@@ -31,12 +30,12 @@ class DisplayField is 'Reaction::UI::ViewPort', which {
confess "Should have both object and attribute or neither"; }
};
- implements build_label => as {
+ implements _build_label => as {
my ($self) = @_;
return join(' ', map { ucfirst } split('_', $self->name));
};
- implements build_value => as {
+ implements _build_value => as {
my ($self) = @_;
if ($self->has_attribute) {
my $reader = $self->attribute->get_read_method;
diff --git a/lib/Reaction/UI/ViewPort/DisplayField/Boolean.pm b/lib/Reaction/UI/ViewPort/DisplayField/Boolean.pm
index 1502fe6..4937a50 100644
--- a/lib/Reaction/UI/ViewPort/DisplayField/Boolean.pm
+++ b/lib/Reaction/UI/ViewPort/DisplayField/Boolean.pm
@@ -14,7 +14,7 @@ class Boolean, is DisplayField, which {
default => sub { {true => 'Yes', false => 'No'} }
);
- implements build_value_string => as {
+ implements _build_value_string => as {
my $self = shift;
my $val = $self->value;
if(!defined $val || $val eq "" || "$val" eq '0'){
diff --git a/lib/Reaction/UI/ViewPort/DisplayField/Collection.pm b/lib/Reaction/UI/ViewPort/DisplayField/Collection.pm
index 02383cf..10da547 100644
--- a/lib/Reaction/UI/ViewPort/DisplayField/Collection.pm
+++ b/lib/Reaction/UI/ViewPort/DisplayField/Collection.pm
@@ -13,11 +13,11 @@ class Collection is 'Reaction::UI::ViewPort::DisplayField', which {
isa => 'Str', is => 'ro', required => 1, default => sub { 'display_name' },
);
- override build_value => sub {
+ override _build_value => sub {
return [super()->members];
};
- implements build_value_names => as {
+ implements _build_value_names => as {
my $self = shift;
my @all = @{$self->value||[]};
my $meth = $self->value_map_method;
diff --git a/lib/Reaction/UI/ViewPort/DisplayField/DateTime.pm b/lib/Reaction/UI/ViewPort/DisplayField/DateTime.pm
index b8e8d89..a53e995 100644
--- a/lib/Reaction/UI/ViewPort/DisplayField/DateTime.pm
+++ b/lib/Reaction/UI/ViewPort/DisplayField/DateTime.pm
@@ -14,7 +14,7 @@ class DateTime is DisplayField, which {
isa => 'Str', is => 'rw', required => 1, default => sub { "%F %H:%M:%S" }
);
- implements build_value_string => as {
+ implements _build_value_string => as {
my $self = shift;
my $value = eval { $self->value };
return '' unless $self->has_value;
diff --git a/lib/Reaction/UI/ViewPort/DisplayField/List.pm b/lib/Reaction/UI/ViewPort/DisplayField/List.pm
index 76fa250..6de2c15 100644
--- a/lib/Reaction/UI/ViewPort/DisplayField/List.pm
+++ b/lib/Reaction/UI/ViewPort/DisplayField/List.pm
@@ -14,15 +14,15 @@ class List is DisplayField, which {
isa => 'Str', is => 'ro', required => 1, default => sub { 'display_name' },
);
- override build_value => sub {
+ override _build_value => sub {
return super() || [];
};
- implements build_value_names => as {
+ implements _build_value_names => as {
my $self = shift;
my @all = @{$self->value||[]};
my $meth = $self->value_map_method;
- my @names = map { blessed $_ ? $_->$meth : $_ } @all;
+ my @names = map { blessed($_) ? $_->$meth : $_ } @all;
return [ sort @names ];
};
diff --git a/lib/Reaction/UI/ViewPort/DisplayField/RelatedObject.pm b/lib/Reaction/UI/ViewPort/DisplayField/RelatedObject.pm
index 9700ac0..da34dff 100644
--- a/lib/Reaction/UI/ViewPort/DisplayField/RelatedObject.pm
+++ b/lib/Reaction/UI/ViewPort/DisplayField/RelatedObject.pm
@@ -14,11 +14,11 @@ class RelatedObject is DisplayField, which {
isa => 'Str', is => 'ro', required => 1, default => sub { 'display_name' },
);
- implements build_value_string => as {
+ implements _build_value_string => as {
my $self = shift;
my $meth = $self->value_map_method;
my $value = $self->value;
- return blessed $value ? $value->$meth : $value;
+ return blessed($value) ? $value->$meth : $value;
};
};
diff --git a/lib/Reaction/UI/ViewPort/Field.pm b/lib/Reaction/UI/ViewPort/Field.pm
index 99a51f3..f0fa0f0 100644
--- a/lib/Reaction/UI/ViewPort/Field.pm
+++ b/lib/Reaction/UI/ViewPort/Field.pm
@@ -40,14 +40,14 @@ class Field is 'Reaction::UI::ViewPort', which {
}
};
- implements build_label => as {
+ implements _build_label => as {
my ($self) = @_;
my $label = join(' ', map { ucfirst } split('_', $self->name));
# print STDERR "Field " . $self->name . " has label '$label'\n";
return $label;
};
- implements build_value => as {
+ implements _build_value => as {
my ($self) = @_;
if ($self->has_attribute) {
my $reader = $self->attribute->get_read_method;
diff --git a/lib/Reaction/UI/ViewPort/Field/ChooseMany.pm b/lib/Reaction/UI/ViewPort/Field/ChooseMany.pm
index 9337a3c..a391144 100644
--- a/lib/Reaction/UI/ViewPort/Field/ChooseMany.pm
+++ b/lib/Reaction/UI/ViewPort/Field/ChooseMany.pm
@@ -35,7 +35,7 @@ class ChooseMany is 'Reaction::UI::ViewPort::Field::ChooseOne', which {
}
};
- override build_value => sub {
+ override _build_value => sub {
return super() || [];
};
diff --git a/lib/Reaction/UI/ViewPort/Field/ChooseOne.pm b/lib/Reaction/UI/ViewPort/Field/ChooseOne.pm
index 703a26f..a44314e 100644
--- a/lib/Reaction/UI/ViewPort/Field/ChooseOne.pm
+++ b/lib/Reaction/UI/ViewPort/Field/ChooseOne.pm
@@ -34,12 +34,12 @@ class ChooseOne is 'Reaction::UI::ViewPort::Field', which {
}
};
- implements build_valid_values => as {
+ implements _build_valid_values => as {
my $self = shift;
return [ $self->attribute->all_valid_values($self->action) ];
};
- implements build_value_choices => sub{
+ implements _build_value_choices => sub{
my $self = shift;
my @pairs = map{{value => $self->obj_to_str($_), name => $self->obj_to_name($_)}}
@{ $self->valid_values };
diff --git a/lib/Reaction/UI/ViewPort/Field/DateTime.pm b/lib/Reaction/UI/ViewPort/Field/DateTime.pm
index 6d2958f..4c34483 100644
--- a/lib/Reaction/UI/ViewPort/Field/DateTime.pm
+++ b/lib/Reaction/UI/ViewPort/Field/DateTime.pm
@@ -19,7 +19,7 @@ class DateTime is 'Reaction::UI::ViewPort::Field', which {
isa => 'Str', is => 'rw', required => 1, default => sub { "%F %H:%M:%S" }
);
- implements build_value_string => as {
+ implements _build_value_string => as {
my $self = shift;
# XXX
diff --git a/lib/Reaction/UI/ViewPort/Field/TimeRange.pm b/lib/Reaction/UI/ViewPort/Field/TimeRange.pm
index fb11841..6f6573e 100644
--- a/lib/Reaction/UI/ViewPort/Field/TimeRange.pm
+++ b/lib/Reaction/UI/ViewPort/Field/TimeRange.pm
@@ -26,7 +26,7 @@ class TimeRange is 'Reaction::UI::ViewPort::Field', which {
is_weak_ref => 1
);
- implements build_value_string => as {
+ implements _build_value_string => as {
my $self = shift;
#return '' unless $self->has_value;
#return $self->value_string;
diff --git a/lib/Reaction/UI/ViewPort/GridView.pm b/lib/Reaction/UI/ViewPort/GridView.pm
index 65959c2..fd9ab20 100644
--- a/lib/Reaction/UI/ViewPort/GridView.pm
+++ b/lib/Reaction/UI/ViewPort/GridView.pm
@@ -30,9 +30,9 @@ class GridView is 'Reaction::UI::ViewPort', which {
shift->clear_entities; #clear the entitiesis the current collection changes, duh
};
- implements build_entity_class => as { Entity };
+ implements _build_entity_class => as { Entity };
- implements build_field_order => as {
+ implements _build_field_order => as {
my ($self) = @_;
my %excluded = map { $_ => undef }
@{ $self->has_exclude_fields ? $self->exclude_fields : [] };
@@ -60,11 +60,11 @@ class GridView is 'Reaction::UI::ViewPort', which {
return $ordered;
};
- implements build_current_collection => as {
+ implements _build_current_collection => as {
shift->collection;
};
- implements build_field_labels => as {
+ implements _build_field_labels => as {
my $self = shift;
my %labels;
for my $field ( @{$self->field_order}){
@@ -73,7 +73,7 @@ class GridView is 'Reaction::UI::ViewPort', which {
return \%labels;
};
- implements build_entities => as {
+ implements _build_entities => as {
my ($self) = @_;
my (@entities, $i);
my $args = $self->has_entity_args ? $self->entity_args : {};
diff --git a/lib/Reaction/UI/ViewPort/GridView/Action.pm b/lib/Reaction/UI/ViewPort/GridView/Action.pm
index a4eeab3..51ae09e 100644
--- a/lib/Reaction/UI/ViewPort/GridView/Action.pm
+++ b/lib/Reaction/UI/ViewPort/GridView/Action.pm
@@ -15,7 +15,7 @@ class Action is 'Reaction::UI::ViewPort', which {
$self->label( $self->label->($self->target) ) if ref $self->label eq 'CODE';
};
- implements build_uri => as{
+ implements _build_uri => as{
my $self = shift;
my $c = $self->ctx;
my ($c_name, $a_name, @rest) = @{ $self->action->($self->target, $c) };
diff --git a/lib/Reaction/UI/ViewPort/GridView/Entity.pm b/lib/Reaction/UI/ViewPort/GridView/Entity.pm
index 0437eb6..3011f7f 100644
--- a/lib/Reaction/UI/ViewPort/GridView/Entity.pm
+++ b/lib/Reaction/UI/ViewPort/GridView/Entity.pm
@@ -26,7 +26,7 @@ class Entity is 'Reaction::UI::ViewPort', which {
$self->field_args( {Field => $field_args} ) if ref $field_args;
};
- implements build_fields => as {
+ implements _build_fields => as {
my ($self) = @_;
my $obj = $self->object;
my $args = $self->has_field_args ? $self->field_args : {};
@@ -48,7 +48,7 @@ class Entity is 'Reaction::UI::ViewPort', which {
implements get_builder_for => as {
my ($self, $attr) = @_;
my $attr_name = $attr->name;
- my $builder = "build_fields_for_name_${attr_name}";
+ my $builder = "_build_fields_for_name_${attr_name}";
return $builder if $self->can($builder);
if ($attr->has_type_constraint) {
my $constraint = $attr->type_constraint;
@@ -61,7 +61,7 @@ class Entity is 'Reaction::UI::ViewPort', which {
foreach my $class ($name->meta->class_precedence_list) {
my $mangled_name = $class;
$mangled_name =~ s/:+/_/g;
- my $builder = "build_fields_for_type_${mangled_name}";
+ my $builder = "_build_fields_for_type_${mangled_name}";
return $builder if $self->can($builder);
}
}
@@ -71,13 +71,13 @@ class Entity is 'Reaction::UI::ViewPort', which {
}
my $mangled_name = $name;
$mangled_name =~ s/:+/_/g;
- my $builder = "build_fields_for_type_${mangled_name}";
+ my $builder = "_build_fields_for_type_${mangled_name}";
return $builder if $self->can($builder);
}
$constraint = $constraint->parent;
}
if (!defined($constraint)) {
- confess "Can't build field ${attr_name} of type ${base_name} without $builder method or build_fields_for_type_<type> method for type or any supertype";
+ confess "Can't build field ${attr_name} of type ${base_name} without $builder method or _build_fields_for_type_<type> method for type or any supertype";
}
} else {
confess "Can't build field ${attr} without $builder method or type constraint";
@@ -85,7 +85,7 @@ class Entity is 'Reaction::UI::ViewPort', which {
};
- implements build_simple_field => as {
+ implements _build_simple_field => as {
my ($self, $class, $obj, $attr, $args) = @_;
my $attr_name = $attr->name;
my %extra;
@@ -102,76 +102,76 @@ class Entity is 'Reaction::UI::ViewPort', which {
);
};
- implements build_fields_for_type_Num => as {
+ implements _build_fields_for_type_Num => as {
my ($self, $obj, $attr, $args) = @_;
$args->{Field}{$attr->name}{layout} = 'value/number'
unless( exists $args->{Field}{$attr->name} &&
exists $args->{Field}{$attr->name}{layout} &&
defined $args->{Field}{$attr->name}{layout}
);
- return $self->build_simple_field(Number, $obj, $attr, $args);
+ return $self->_build_simple_field(Number, $obj, $attr, $args);
};
- implements build_fields_for_type_Int => as {
+ implements _build_fields_for_type_Int => as {
my ($self, $obj, $attr, $args) = @_;
$args->{Field}{$attr->name}{layout} = 'value/number'
unless( exists $args->{Field}{$attr->name} &&
exists $args->{Field}{$attr->name}{layout} &&
defined $args->{Field}{$attr->name}{layout}
);
- return $self->build_simple_field(Number, $obj, $attr, $args);
+ return $self->_build_simple_field(Number, $obj, $attr, $args);
};
- implements build_fields_for_type_Bool => as {
+ implements _build_fields_for_type_Bool => as {
my ($self, $obj, $attr, $args) = @_;
$args->{Field}{$attr->name}{layout} = 'value/boolean'
unless( exists $args->{Field}{$attr->name} &&
exists $args->{Field}{$attr->name}{layout} &&
defined $args->{Field}{$attr->name}{layout}
);
- return $self->build_simple_field(Boolean, $obj, $attr, $args);
+ return $self->_build_simple_field(Boolean, $obj, $attr, $args);
};
- implements build_fields_for_type_Password => as { return };
+ implements _build_fields_for_type_Password => as { return };
- implements build_fields_for_type_Str => as {
+ implements _build_fields_for_type_Str => as {
my ($self, $obj, $attr, $args) = @_;
$args->{Field}{$attr->name}{layout} = 'value/string'
unless( exists $args->{Field}{$attr->name} &&
exists $args->{Field}{$attr->name}{layout} &&
defined $args->{Field}{$attr->name}{layout}
);
- return $self->build_simple_field(String, $obj, $attr, $args);
+ return $self->_build_simple_field(String, $obj, $attr, $args);
};
- implements build_fields_for_type_SimpleStr => as {
+ implements _build_fields_for_type_SimpleStr => as {
my ($self, $obj, $attr, $args) = @_;
$args->{Field}{$attr->name}{layout} = 'value/string'
unless( exists $args->{Field}{$attr->name} &&
exists $args->{Field}{$attr->name}{layout} &&
defined $args->{Field}{$attr->name}{layout}
);
- return $self->build_simple_field(String, $obj, $attr, $args);
+ return $self->_build_simple_field(String, $obj, $attr, $args);
};
- implements build_fields_for_type_DateTime => as {
+ implements _build_fields_for_type_DateTime => as {
my ($self, $obj, $attr, $args) = @_;
$args->{Field}{$attr->name}{layout} = 'value/date_time'
unless( exists $args->{Field}{$attr->name} &&
exists $args->{Field}{$attr->name}{layout} &&
defined $args->{Field}{$attr->name}{layout}
);
- return $self->build_simple_field(DateTime, $obj, $attr, $args);
+ return $self->_build_simple_field(DateTime, $obj, $attr, $args);
};
- implements build_fields_for_type_Enum => as {
+ implements _build_fields_for_type_Enum => as {
my ($self, $obj, $attr, $args) = @_;
$args->{Field}{$attr->name}{layout} = 'value/string'
unless( exists $args->{Field}{$attr->name} &&
exists $args->{Field}{$attr->name}{layout} &&
defined $args->{Field}{$attr->name}{layout}
);
- return $self->build_simple_field(String, $obj, $attr, $args);
+ return $self->_build_simple_field(String, $obj, $attr, $args);
};
};
diff --git a/lib/Reaction/UI/ViewPort/GridView/Role/Actions.pm b/lib/Reaction/UI/ViewPort/GridView/Role/Actions.pm
index 1114385..c6befc1 100644
--- a/lib/Reaction/UI/ViewPort/GridView/Role/Actions.pm
+++ b/lib/Reaction/UI/ViewPort/GridView/Role/Actions.pm
@@ -10,9 +10,9 @@ role Actions, which {
has actions => (is => 'ro', isa => 'ArrayRef', lazy_build => 1);
has action_prototypes => (is => 'ro', isa => 'ArrayRef', lazy_build => 1);
- implements build_action_prototypes => as { [] };
+ implements _build_action_prototypes => as { [] };
- implements build_actions => as {
+ implements _build_actions => as {
my ($self) = @_;
my (@act, $i);
my $ctx = $self->ctx;
diff --git a/lib/Reaction/UI/ViewPort/GridView/Role/Entity/Actions.pm b/lib/Reaction/UI/ViewPort/GridView/Role/Entity/Actions.pm
index 2f36275..c77ede3 100644
--- a/lib/Reaction/UI/ViewPort/GridView/Role/Entity/Actions.pm
+++ b/lib/Reaction/UI/ViewPort/GridView/Role/Entity/Actions.pm
@@ -10,9 +10,9 @@ role Actions, which {
has actions => (is => 'ro', isa => 'ArrayRef', lazy_build => 1);
has action_prototypes => (is => 'ro', isa => 'ArrayRef', lazy_build => 1);
- implements build_action_prototypes => as { [] };
+ implements _build_action_prototypes => as { [] };
- implements build_actions => as {
+ implements _build_actions => as {
my ($self) = @_;
my (@act, $i);
my $ctx = $self->ctx;
diff --git a/lib/Reaction/UI/ViewPort/GridView/Role/Order.pm b/lib/Reaction/UI/ViewPort/GridView/Role/Order.pm
index 59a6611..86b505e 100644
--- a/lib/Reaction/UI/ViewPort/GridView/Role/Order.pm
+++ b/lib/Reaction/UI/ViewPort/GridView/Role/Order.pm
@@ -7,13 +7,13 @@ role Order, which {
has order_by => (isa => 'Str', is => 'rw', trigger_adopt('order_by'));
has order_by_desc => (isa => 'Int', is => 'rw', trigger_adopt('order_by'), lazy_build => 1);
- implements build_order_by_desc => as { 0 };
+ implements _build_order_by_desc => as { 0 };
implements adopt_order_by => as {
shift->clear_current_collection;
};
- around build_current_collection => sub {
+ around _build_current_collection => sub {
my $orig = shift;
my ($self) = @_;
my $collection = $orig->(@_);
diff --git a/lib/Reaction/UI/ViewPort/GridView/Role/Pager.pm b/lib/Reaction/UI/ViewPort/GridView/Role/Pager.pm
index c14b0a8..24841ba 100644
--- a/lib/Reaction/UI/ViewPort/GridView/Role/Pager.pm
+++ b/lib/Reaction/UI/ViewPort/GridView/Role/Pager.pm
@@ -12,20 +12,23 @@ role Pager, which {
has pager => (isa => 'Data::Page', is => 'rw', lazy_build => 1);
has page => (isa => 'Int', is => 'rw', lazy_build => 1, trigger_adopt('page'));
has per_page => (isa => 'Int', is => 'rw', lazy_build => 1, trigger_adopt('page'));
+ has per_page_max => (isa => 'Int', is => 'rw', lazy_build => 1);
- implements build_page => as { 1 };
- implements build_per_page => as { 10 };
+ implements _build_page => as { 1 };
+ implements _build_per_page => as { 10 };
+ implements _build_per_page_max => as { 100 };
- implements build_pager => as { shift->current_collection->pager };
+ implements _build_pager => as { shift->current_collection->pager };
implements adopt_page => as {
my ($self) = @_;
#$self->clear_paged_collection;
- $self->clear_current_collection;
+
$self->clear_pager;
+ $self->clear_current_collection;
};
- around accept_events => sub { ('page', shift->(@_)); };
+ around accept_events => sub { ('page','per_page', shift->(@_)); };
#implements build_paged_collection => as {
# my ($self) = @_;
@@ -33,7 +36,7 @@ role Pager, which {
# return $collection->where(undef, {rows => $self->per_page})->page($self->page);
#};
- around build_current_collection => sub {
+ around _build_current_collection => sub {
my $orig = shift;
my ($self) = @_;
my $collection = $orig->(@_);
diff --git a/lib/Reaction/UI/ViewPort/ListView.pm b/lib/Reaction/UI/ViewPort/ListView.pm
index 3d21ad6..f20f555 100644
--- a/lib/Reaction/UI/ViewPort/ListView.pm
+++ b/lib/Reaction/UI/ViewPort/ListView.pm
@@ -13,7 +13,7 @@ class ListView is 'Reaction::UI::ViewPort::GridView', which {
#If I decide that object actions and collection actions should be
#lumped together i oculd move these into the collection action role
#ooor we could create a third role that does this, but gah, no?
- implements build_entity_class => as { WithActions };
+ implements _build_entity_class => as { WithActions };
#You'se has to goes aways. sorry.
#if i saved the args as an attribute i could probably get around this....
diff --git a/lib/Reaction/UI/ViewPort/ObjectView.pm b/lib/Reaction/UI/ViewPort/ObjectView.pm
index 3b101e4..a9e895f 100644
--- a/lib/Reaction/UI/ViewPort/ObjectView.pm
+++ b/lib/Reaction/UI/ViewPort/ObjectView.pm
@@ -35,7 +35,7 @@ class ObjectView is 'Reaction::UI::ViewPort', which {
my $object = $self->object;
my %excluded = map{$_ => 1} @{$self->exclude_fields};
for my $attr (grep { !$excluded{$_->name} } $object->parameter_attributes) {
- push(@field_map, $self->build_fields_for($attr => $args));
+ push(@field_map, $self->_build_fields_for($attr => $args));
}
my %field_map = @field_map;
@@ -43,10 +43,10 @@ class ObjectView is 'Reaction::UI::ViewPort', which {
}
};
- implements build_fields_for => as {
+ implements _build_fields_for => as {
my ($self, $attr, $args) = @_;
my $attr_name = $attr->name;
- my $builder = "build_fields_for_name_${attr_name}";
+ my $builder = "_build_fields_for_name_${attr_name}";
my @fields;
if ($self->can($builder)) {
@fields = $self->$builder($attr, $args); # re-use coderef from can()
@@ -61,7 +61,7 @@ class ObjectView is 'Reaction::UI::ViewPort', which {
foreach my $class ($name->meta->class_precedence_list) {
my $mangled_name = $class;
$mangled_name =~ s/:+/_/g;
- my $builder = "build_fields_for_type_${mangled_name}";
+ my $builder = "_build_fields_for_type_${mangled_name}";
if ($self->can($builder)) {
@fields = $self->$builder($attr, $args);
last CONSTRAINT;
@@ -74,7 +74,7 @@ class ObjectView is 'Reaction::UI::ViewPort', which {
}
my $mangled_name = $name;
$mangled_name =~ s/:+/_/g;
- my $builder = "build_fields_for_type_${mangled_name}";
+ my $builder = "_build_fields_for_type_${mangled_name}";
if ($self->can($builder)) {
@fields = $self->$builder($attr, $args);
last CONSTRAINT;
@@ -83,7 +83,7 @@ class ObjectView is 'Reaction::UI::ViewPort', which {
$constraint = $constraint->parent;
}
if (!defined($constraint)) {
- confess "Can't build field ${attr_name} of type ${base_name} without $builder method or build_fields_for_type_<type> method for type or any supertype";
+ confess "Can't build field ${attr_name} of type ${base_name} without $builder method or _build_fields_for_type_<type> method for type or any supertype";
}
} else {
confess "Can't build field ${attr} without $builder method or type constraint";
@@ -95,13 +95,13 @@ class ObjectView is 'Reaction::UI::ViewPort', which {
confess "Lazy field map building not supported by default";
};
- implements build_ordered_fields => as {
+ implements _build_ordered_fields => as {
my $self = shift;
my $ordered = $self->sort_by_spec($self->column_order, [keys %{$self->_field_map}]);
return [@{$self->_field_map}{@$ordered}];
};
- implements build_simple_field => as {
+ implements _build_simple_field => as {
my ($self, $class, $attr, $args) = @_;
my $attr_name = $attr->name;
my %extra;
@@ -119,56 +119,56 @@ class ObjectView is 'Reaction::UI::ViewPort', which {
return ($attr_name => $field);
};
- implements build_fields_for_type_Num => as {
+ implements _build_fields_for_type_Num => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(Number, $attr, $args);
+ return $self->_build_simple_field(Number, $attr, $args);
};
- implements build_fields_for_type_Int => as {
+ implements _build_fields_for_type_Int => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(Number, $attr, $args);
+ return $self->_build_simple_field(Number, $attr, $args);
};
- implements build_fields_for_type_Bool => as {
+ implements _build_fields_for_type_Bool => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(Boolean, $attr, $args);
+ return $self->_build_simple_field(Boolean, $attr, $args);
};
- implements build_fields_for_type_Password => as { return };
+ implements _build_fields_for_type_Password => as { return };
- implements build_fields_for_type_Str => as {
+ implements _build_fields_for_type_Str => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(String, $attr, $args);
+ return $self->_build_simple_field(String, $attr, $args);
};
- implements build_fields_for_type_SimpleStr => as {
+ implements _build_fields_for_type_SimpleStr => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(String, $attr, $args);
+ return $self->_build_simple_field(String, $attr, $args);
};
- implements build_fields_for_type_DateTime => as {
+ implements _build_fields_for_type_DateTime => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(DateTime, $attr, $args);
+ return $self->_build_simple_field(DateTime, $attr, $args);
};
- implements build_fields_for_type_Enum => as {
+ implements _build_fields_for_type_Enum => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(String, $attr, $args);
+ return $self->_build_simple_field(String, $attr, $args);
};
- implements build_fields_for_type_ArrayRef => as {
+ implements _build_fields_for_type_ArrayRef => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(List, $attr, $args)
+ return $self->_build_simple_field(List, $attr, $args)
};
- implements build_fields_for_type_Reaction_InterfaceModel_Collection => as {
+ implements _build_fields_for_type_Reaction_InterfaceModel_Collection => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(Collection, $attr, $args)
+ return $self->_build_simple_field(Collection, $attr, $args)
};
- implements build_fields_for_type_Reaction_InterfaceModel_Object => as {
+ implements _build_fields_for_type_Reaction_InterfaceModel_Object => as {
my ($self, $attr, $args) = @_;
- return $self->build_simple_field(RelatedObject, $attr, $args);
+ return $self->_build_simple_field(RelatedObject, $attr, $args);
};
no Moose;
diff --git a/lib/Reaction/UI/ViewPort/TimeRangeCollection.pm b/lib/Reaction/UI/ViewPort/TimeRangeCollection.pm
index 1ebc03b..ac61f3e 100644
--- a/lib/Reaction/UI/ViewPort/TimeRangeCollection.pm
+++ b/lib/Reaction/UI/ViewPort/TimeRangeCollection.pm
@@ -62,7 +62,7 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which {
isa => 'HashRef', is => 'rw', init_arg => 'fields',
clearer => '_clear_field_map',
predicate => '_has_field_map',
- set_or_lazy_build('field_map'),
+ lazy_build => 1,
);
has on_next_callback => (
@@ -73,7 +73,7 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which {
implements fields => as { shift->_field_map };
- implements build_range_vps => as { [] };
+ implements _build_range_vps => as { [] };
implements spanset => as {
my ($self) = @_;
@@ -112,7 +112,7 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which {
parent => $self
};
my $count = scalar(@{$self->range_vps});
- my $field = $self->build_simple_field(TimeRange, 'range-'.$count, $args);
+ my $field = $self->_build_simple_field(TimeRange, 'range-'.$count, $args);
my $d = DateTime::Format::Duration->new( pattern => '%s' );
if ($d->format_duration( $self->spanset->intersection($field->value)->duration ) > 0) {
# XXX - Stop using the stash here?
@@ -125,7 +125,7 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which {
}
};
- implements build_field_map => as {
+ implements _build_field_map => as {
my ($self) = @_;
my %map;
foreach my $field (@{$self->range_vps}) {
@@ -137,7 +137,7 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which {
return \%map;
};
- implements build_field_names => as {
+ implements _build_field_names => as {
my ($self) = @_;
return [
(map { $_->name } @{$self->range_vps}),
@@ -192,7 +192,7 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which {
return !defined($error);
};
- implements build_simple_field => as {
+ implements _build_simple_field => as {
my ($self, $class, $name, $args) = @_;
return $class->new(
name => $name,
@@ -202,29 +202,29 @@ class TimeRangeCollection is 'Reaction::UI::ViewPort', which {
);
};
- implements build_time_to => as {
+ implements _build_time_to => as {
my ($self) = @_;
- return $self->build_simple_field(DateTime, 'time_to', {});
+ return $self->_build_simple_field(DateTime, 'time_to', {});
};
- implements build_time_from => as {
+ implements _build_time_from => as {
my ($self) = @_;
- return $self->build_simple_field(DateTime, 'time_from', {});
+ return $self->_build_simple_field(DateTime, 'time_from', {});
};
- implements build_repeat_to => as {
+ implements _build_repeat_to => as {
my ($self) = @_;
- return $self->build_simple_field(DateTime, 'repeat_to', {});
+ return $self->_build_simple_field(DateTime, 'repeat_to', {});
};
- implements build_repeat_from => as {
+ implements _build_repeat_from => as {
my ($self) = @_;
- return $self->build_simple_field(DateTime, 'repeat_from', {});
+ return $self->_build_simple_field(DateTime, 'repeat_from', {});
};
- implements build_pattern => as {
+ implements _build_pattern => as {
my ($self) = @_;
- return $self->build_simple_field(String, 'pattern', {});
+ return $self->_build_simple_field(String, 'pattern', {});
};
implements next => as {
@@ -356,7 +356,7 @@ Arguments: $to_remove
Arguments: $to_add
-=head2 build_simple_field
+=head2 _build_simple_field
Arguments: $class, $name, $args
where $class is an object, $name is a scalar and $args is a hashref
diff --git a/lib/Reaction/UI/Widget/Field.pm b/lib/Reaction/UI/Widget/Field.pm
index 6e3fb2f..1e5de08 100644
--- a/lib/Reaction/UI/Widget/Field.pm
+++ b/lib/Reaction/UI/Widget/Field.pm
@@ -7,8 +7,8 @@ class Field, which {
has id => (isa => 'Str', is => 'ro', lazy_build => 1);
has name => (isa => 'Str', is => 'ro', lazy_build => 1);
- implements build_id => as { shift->viewport->event_id_for('value'); };
- implements build_name => as { shift->viewport->event_id_for('value'); };
+ implements _build_id => as { shift->viewport->event_id_for('value'); };
+ implements _build_name => as { shift->viewport->event_id_for('value'); };
widget renders [qw/label field message/
=> { id => func('self', 'id'),
@@ -44,11 +44,11 @@ Str, lazy builds.
=head1 METHODS
-=head2 build_id
+=head2 _build_id
Returns the viewport's C<event_id_for('value')>
-=head2 build_name
+=head2 _build_name
Returns the viewport's C<event_id_for('value')>
diff --git a/lib/Reaction/UI/Window.pm b/lib/Reaction/UI/Window.pm
index ecf1e57..2bf4fc6 100644
--- a/lib/Reaction/UI/Window.pm
+++ b/lib/Reaction/UI/Window.pm
@@ -20,18 +20,18 @@ class Window which {
is => 'ro', required => 1,
default => sub { Reaction::UI::FocusStack->new },
);
-
- implements build_view => as {
+
+ implements _build_view => as {
my ($self) = @_;
return $self->ctx->view($self->view_name);
};
-
+
implements flush => as {
my ($self) = @_;
$self->flush_events;
$self->flush_view;
};
-
+
implements flush_events => as {
my ($self) = @_;
my $ctx = $self->ctx;
@@ -41,7 +41,7 @@ class Window which {
$self->focus_stack->apply_events($ctx, $param_hash);
}
};
-
+
implements flush_view => as {
my ($self) = @_;
return if $self->ctx->res->status =~ /^3/ || length($self->ctx->res->body);
@@ -52,7 +52,7 @@ class Window which {
};
# required by old Renderer::XHTML
-
+
implements render_viewport => as {
my ($self, $vp) = @_;
return unless $vp;
@@ -79,7 +79,7 @@ Reaction::UI::Window - Container for rendering the UI elements in
# More commonly, as Reaction::UI::RootController creates one for you:
my $window = $ctx->stash->{window};
- # Resolve current events and render the view of the UI
+ # Resolve current events and render the view of the UI
# elements of this Window:
# This is called by the end action of Reaction::UI::RootController
$window->flush();
diff --git a/t/lib/RTest/InterfaceModel/Reflector/DBIC.pm b/t/lib/RTest/InterfaceModel/Reflector/DBIC.pm
index 9451c00..7a26358 100644
--- a/t/lib/RTest/InterfaceModel/Reflector/DBIC.pm
+++ b/t/lib/RTest/InterfaceModel/Reflector/DBIC.pm
@@ -15,7 +15,7 @@ has im_schema => (is =>'ro', isa => 'RTest::TestIM', lazy_build => 1);
#when I have time I will write test cases that cover all the other bases
#it's just kind of a pain in the ass right now and I am behind on a lot of other shit.
-sub build_im_schema{
+sub _build_im_schema{
my $self = shift;
my $reflector = Reaction::InterfaceModel::Reflector::DBIC->new;
@@ -139,9 +139,9 @@ sub test_reflect_collection_for :Tests{
'Reaction::InterfaceModel::Collection::Virtual::ResultSet',
"Collection ISA virtual resultset"
);
- Test::More::can_ok($collection, '_build_im_class');
+ Test::More::can_ok($collection, '_build__im_class');
Test::More::is(
- $collection->_build_im_class,
+ $collection->_build__im_class,
"RTest::TestIM::${_}",
"Collection has correct _im_class"
);
@@ -247,9 +247,9 @@ sub test_reflect_submodel_action :Tests{
Test::More::isa_ok($member, $collection->_im_class);
my $ctx = $self->simple_mock_context;
- foreach my $action_name (qw/Update Delete Create/){
+ foreach my $action_name (qw/Update Delete DeleteAll Create/){
- my $target_im = $action_name eq 'Create' ? $collection : $member;
+ my $target_im = $action_name =~ /(?:Create|DeleteAll)/ ? $collection : $member;
my $action = $target_im->action_for($action_name, ctx => $ctx);
Test::More::isa_ok( $action, "Reaction::InterfaceModel::Action",
@@ -260,14 +260,15 @@ sub test_reflect_submodel_action :Tests{
"${action_name} action has correct name"
);
- my $base = 'Reaction::InterfaceModel::Action::DBIC' .
- ($action_name eq 'Create' ? '::ResultSet::Create' : "::Result::${action_name}");
- Test::More::isa_ok($action, $base, 'Create action has correct base');
+ my $base = 'Reaction::InterfaceModel::Action::DBIC'.
+ ($action_name =~ /(?:Create|DeleteAll)/
+ ? "::ResultSet::${action_name}" : "::Result::${action_name}");
+ Test::More::isa_ok($action, $base, "${action_name} has correct base");
my %attrs = map { $_->name => $_ } $action->parameter_attributes;
my $attr_num;
- if($action_name eq 'Delete'){next; }
+ if($action_name =~ /Delete/){next; }
elsif($sm eq "Bar"){$attr_num = 4; }
elsif($sm eq "Baz"){$attr_num = 1; }
elsif($sm eq "Foo"){$attr_num = 3; }