aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Reaction/UI/ViewPort/Field/File.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Reaction/UI/ViewPort/Field/File.pm')
-rw-r--r--lib/Reaction/UI/ViewPort/Field/File.pm30
1 files changed, 16 insertions, 14 deletions
diff --git a/lib/Reaction/UI/ViewPort/Field/File.pm b/lib/Reaction/UI/ViewPort/Field/File.pm
index dfe4dac..5d731e6 100644
--- a/lib/Reaction/UI/ViewPort/Field/File.pm
+++ b/lib/Reaction/UI/ViewPort/Field/File.pm
@@ -3,25 +3,27 @@ package Reaction::UI::ViewPort::Field::File;
use Reaction::Class;
use Reaction::Types::File;
-class File is 'Reaction::UI::ViewPort::Field', which {
+use namespace::clean -except => [ qw(meta) ];
+extends 'Reaction::UI::ViewPort::Field';
- has '+value' => (isa => Reaction::Types::File::File());
- has uri => ( is => 'rw', lazy_build => 1);
- has action => (isa => 'CodeRef', is => 'rw', required => 1);
+has '+value' => (isa => Reaction::Types::File::File());
- implements _build_uri => as{
- my $self = shift;
- my $c = $self->ctx;
- my ($c_name, $a_name, @rest) = @{ $self->action->($self->model, $c) };
- $c->uri_for($c->controller($c_name)->action_for($a_name),@rest);
- };
+has uri => ( is => 'rw', lazy_build => 1);
- implements _value_string_from_value => as {
- shift->value->stringify;
- };
-
+has action => (isa => 'CodeRef', is => 'rw', required => 1);
+sub _build_uri {
+ my $self = shift;
+ my $c = $self->ctx;
+ my ($c_name, $a_name, @rest) = @{ $self->action->($self->model, $c) };
+ $c->uri_for($c->controller($c_name)->action_for($a_name),@rest);
};
+sub _value_string_from_value {
+ shift->value->stringify;
+};
+
+__PACKAGE__->meta->make_immutable;
+
1;