fixed bool field
[catagits/Reaction.git] / lib / Reaction / UI / ViewPort / Field / Mutable / Boolean.pm
index dfd936e..1b25023 100644 (file)
@@ -2,19 +2,26 @@ package Reaction::UI::ViewPort::Field::Mutable::Boolean;
 
 use Reaction::Class;
 
-class Boolean is 'Reaction::UI::ViewPort::Field::Boolean', which{
-  does 'Reaction::UI::ViewPort::Field::Role::Mutable::Simple';
+use namespace::clean -except => [ qw(meta) ];
+extends 'Reaction::UI::ViewPort::Field::Boolean';
 
-  implements adopt_value_string => as {
-    my ($self) = @_;
-    $self->value($self->value_string);
-  };
+with 'Reaction::UI::ViewPort::Field::Role::Mutable::Simple';
+sub adopt_value_string {
+  my ($self) = @_;
+  $self->value($self->value_string||0);
+};
+sub BUILD {
+  my($self) = @_;
+  $self->value(0) unless $self->_model_has_value;
+};
 
-  implements BUILD => as {
-    my($self) = @_;
-    $self->value(0) unless $self->_model_has_value;
-  };
+# yeah, bool fields have to always be required
+# otherwise we ever cant get false
+# for reference, take a peek in Field::Role::Mutable::Simple's
+# is_modified logic
+sub value_is_required { 1 }
+
+__PACKAGE__->meta->make_immutable;
 
-};
 
 1;