Commit | Line | Data |
ddccc6a2 |
1 | package Reaction::UI::ViewPort::Field::Mutable::Array; |
2 | |
3 | use Reaction::Class; |
4 | |
81393881 |
5 | use namespace::clean -except => [ qw(meta) ]; |
6 | extends 'Reaction::UI::ViewPort::Field::Array'; |
ddccc6a2 |
7 | |
81393881 |
8 | with 'Reaction::UI::ViewPort::Field::Role::Mutable'; |
9 | |
10 | around value => sub { |
11 | my $orig = shift; |
12 | my $self = shift; |
13 | return $orig->($self) unless @_; |
14 | my $value = defined $_[0] ? $_[0] : []; |
15 | $orig->($self, (ref $value eq 'ARRAY' ? $value : [ $value ])); |
ddccc6a2 |
16 | }; |
81393881 |
17 | |
56d5a4eb |
18 | # value_string doesn't make sense in an Array field |
19 | override _value_string_from_value => sub { shift->_empty_string_value }; |
20 | |
21 | __PACKAGE__->meta->make_immutable; |
ddccc6a2 |
22 | |
23 | 1; |
24 | |