do not include .git directory
[catagits/Reaction.git] / lib / Reaction / UI / ViewPort / Field / File.pm
CommitLineData
7adfd53f 1package Reaction::UI::ViewPort::Field::File;
2
3use Reaction::Class;
ddd1dc65 4use Reaction::Types::File;
7adfd53f 5
81393881 6use namespace::clean -except => [ qw(meta) ];
7extends 'Reaction::UI::ViewPort::Field';
7adfd53f 8
7b5e71ad 9use MooseX::Types::Moose qw/CodeRef/;
6ab43711 10
81393881 11has '+value' => (isa => Reaction::Types::File::File());
6ab43711 12
81393881 13has uri => ( is => 'rw', lazy_build => 1);
7adfd53f 14
7b5e71ad 15has action => (isa => CodeRef, is => 'rw', required => 1);
16
81393881 17sub _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);
7b5e71ad 22}
23
81393881 24sub _value_string_from_value {
25 shift->value->stringify;
7b5e71ad 26}
27
81393881 28__PACKAGE__->meta->make_immutable;
29
7adfd53f 30
311;