X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FReaction%2FUI%2FWidgetClass.pm;h=e1a797bb601dfa1fc608a9c2638012d656b476f7;hb=1ef7b9da7545471cbab981e32d42dee14267beb6;hp=22e00e6040ae86d4acc141d776e2dd87f58429c3;hpb=a86de581e80ee37e60860bde8ddaa975ff7dd6c9;p=catagits%2FReaction.git diff --git a/lib/Reaction/UI/WidgetClass.pm b/lib/Reaction/UI/WidgetClass.pm index 22e00e6..e1a797b 100644 --- a/lib/Reaction/UI/WidgetClass.pm +++ b/lib/Reaction/UI/WidgetClass.pm @@ -57,12 +57,20 @@ override exports_for_package => sub { my ($name, $value) = @_; my $sig = "should be: arg 'name' => \$value"; - if (@_ < 2) { confess "Not enough arguments, $sig"; } + if (@_ < 2) { + $name ||= 'undef'; + $value ||= 'undef'; + confess "Not enough arguments, $sig, got: $name => $value"; + } if (!defined $name) { confess "name undefined, $sig"; } if (ref $name) { confess "name is not a string, $sig"; } $new_args->{$name} = $value; }, + localized => sub { + my($value) = @_; + return $_{self}->view->localize($value); + }, call_next => sub { confess "args passed, should be just call_next; or call_next();" if @_; @@ -91,6 +99,10 @@ override exports_for_package => sub { qq{$_="${text}"}; } keys %$attrs); }, + implements => sub { + my ($name, $sub) = @_; + $package->meta->add_method($name, $sub); + }, ); }; override default_base => sub { ('Reaction::UI::Widget') };