X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FReaction%2FUI%2FWidgetClass.pm;h=e68add0227e200f52737d62f3f8aa3b247ae9802;hb=86db4be7223283effc37a875d0c3e665c55d0418;hp=0b3e62f4d0356d0566890c0b139ede6640792ea3;hpb=a3c28d596b414a9d98d9f60b69d2bb4811fbafc8;p=catagits%2FReaction.git diff --git a/lib/Reaction/UI/WidgetClass.pm b/lib/Reaction/UI/WidgetClass.pm index 0b3e62f..e68add0 100644 --- a/lib/Reaction/UI/WidgetClass.pm +++ b/lib/Reaction/UI/WidgetClass.pm @@ -5,6 +5,7 @@ use Reaction::Class; use Reaction::UI::Widget; use Data::Dumper; use Devel::Declare; +use HTML::Entities (); use aliased 'Reaction::UI::WidgetClass::_OVER'; no warnings 'once'; @@ -47,7 +48,7 @@ override exports_for_package => sub { my $sig = "should be: render 'name' or render 'name' => over \$coll"; if (!defined $name) { confess "name undefined: $sig"; } - if (ref $name) { confess "name not string: $sig"; } + if (ref $name) { confess "name is a ${\ref $name} ref, not a plain string: $sig"; } if (defined $over && !(blessed($over) && $over->isa(_OVER))) { confess "invalid args after name, $sig"; } @@ -67,6 +68,10 @@ override exports_for_package => sub { $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 @_; @@ -85,13 +90,7 @@ override exports_for_package => sub { attrs => sub { my ($attrs) = @_; return join(' ', map { - my $text = $attrs->{$_}; - for ($text) { - s/&/&/g; - s//>/g; - s/"/"/g; - } + my $text = HTML::Entities::encode_entities( $attrs->{$_} ); qq{$_="${text}"}; } keys %$attrs); },