do not include .git directory
[catagits/Reaction.git] / lib / Reaction / UI / ViewPort / Field / File.pm
1 package Reaction::UI::ViewPort::Field::File;
2
3 use Reaction::Class;
4 use Reaction::Types::File;
5
6 use namespace::clean -except => [ qw(meta) ];
7 extends 'Reaction::UI::ViewPort::Field';
8
9 use MooseX::Types::Moose qw/CodeRef/;
10
11 has '+value' => (isa => Reaction::Types::File::File());
12
13 has uri    => ( is => 'rw', lazy_build => 1);
14
15 has action => (isa => CodeRef, is => 'rw', required => 1);
16
17 sub _build_uri {
18   my $self = shift;
19   my $c = $self->ctx;
20   my ($c_name, $a_name, @rest) = @{ $self->action->($self->model, $c) };
21   $c->uri_for($c->controller($c_name)->action_for($a_name),@rest);
22 }
23
24 sub _value_string_from_value {
25     shift->value->stringify;
26 }
27
28 __PACKAGE__->meta->make_immutable;
29
30
31 1;