added action_filter
[catagits/Reaction.git] / lib / Reaction / UI / ViewPort / Field / File.pm
index d55091c..adb0155 100644 (file)
@@ -1,24 +1,31 @@
 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 uri    => ( is => 'rw', lazy_build => 1);
+use MooseX::Types::Moose qw/CodeRef/;
 
-  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);
+
+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;
 
-  implements _value_string_from_value => as {
-      shift->value->stringify;
-  };
-    
-};
 
 1;