diff options
author | edenc <edenc@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7> | 2009-02-19 02:17:56 +0000 |
---|---|---|
committer | edenc <edenc@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7> | 2009-02-19 02:17:56 +0000 |
commit | 160cad9e87ded8dc4146fd1aa82189496afe738c (patch) | |
tree | 276925222f33ae7e1fd48f94f05dd66b075f55f2 /lib | |
parent | cdbd6694eaa03739db589c52e7d062b7f2e30287 (diff) | |
download | reaction-160cad9e87ded8dc4146fd1aa82189496afe738c.tar.gz reaction-160cad9e87ded8dc4146fd1aa82189496afe738c.zip |
added debug messages to IM::Action
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Reaction/InterfaceModel/Action.pm | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/Reaction/InterfaceModel/Action.pm b/lib/Reaction/InterfaceModel/Action.pm index 06ab55a..558ac03 100644 --- a/lib/Reaction/InterfaceModel/Action.pm +++ b/lib/Reaction/InterfaceModel/Action.pm @@ -8,6 +8,8 @@ use Reaction::Class; use namespace::clean -except => [ qw(meta) ]; +sub _debug { $ENV{REACTION_IM_ACTION_DEBUG} } + has error_message => ( is => 'rw', isa => 'Str', @@ -37,6 +39,7 @@ sub parameter_hashref { foreach my $attr ($self->parameter_attributes) { my $reader = $attr->get_read_method; my $predicate = $attr->get_predicate_method; + warn "${\$attr->name} has default: ${\$attr->has_default}"; next if defined($predicate) && !$self->$predicate && ($attr->is_lazy_fail || !$attr->has_default); $params{$attr->name} = $self->$reader; @@ -51,12 +54,18 @@ sub can_apply { if ($self->attribute_is_required($attr)) { confess "No predicate for required attribute ${\$attr->name} for ${self}" unless $predicate; - return 0 if !$self->$predicate && ($attr->is_lazy_fail || !$attr->has_default); + if( !$self->$predicate && ($attr->is_lazy_fail || !$attr->has_default) ) { + warn "${\$attr->name} is required but hasn't been set" if _debug(); + return 0; + } } if ($attr->has_valid_values) { unless ($predicate && !($self->$predicate)) { my $reader = $attr->get_read_method; - return 0 unless $attr->check_valid_value($self, $self->$reader); + unless( $attr->check_valid_value($self, $self->$reader) ) { + warn "\${\$self->$reader} isn't a valid value for ${\$attr->name}" if _debug(); + return 0; + } } } } |