From: groditi Date: Thu, 12 Feb 2009 01:12:12 +0000 (+0000) Subject: use MooseX::Types::Common and MooseX::Types::DateTime X-Git-Tag: v0.002000~106 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=baee102d2189942f509b43d703d74e4e21c64403;p=catagits%2FReaction.git use MooseX::Types::Common and MooseX::Types::DateTime --- diff --git a/Changes b/Changes index fb2e882..e0c4887 100644 --- a/Changes +++ b/Changes @@ -8,6 +8,8 @@ Revision history for Reaction messages via attribute message and model's error_message attribute. - Updated templates and widget to match this - Added an example to ComponentUI + - Add support for the external MooseX::Types::Common and + MooseX::Types::DateTime type libraries in the VPs 0.001001 - 12 Aug 2008 - Initital public release diff --git a/Makefile.PL b/Makefile.PL index 5c0f146..699ad33 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -36,6 +36,8 @@ requires 'Email::MIME::Creator'; requires 'Text::CSV_XS'; requires 'Devel::Declare' => '0.003004'; requires 'MooseX::Types' => '0.04'; +requires 'MooseX::Types::Common'; +requires 'MooseX::Types::DateTime'; requires 'Scalar::Util'; requires 'File::ShareDir' => '1.00'; requires 'namespace::clean' => '0.08'; diff --git a/TODO b/TODO index 9a10b52..e1ff849 100644 --- a/TODO +++ b/TODO @@ -30,4 +30,9 @@ * Reaction::UI::ViewPort::Field - Why did the check for non lazy_fail lazy attrs go away? it breaks my IMs - code is commented out, but does anyone know why? \ No newline at end of file + code is commented out, but does anyone know why? + +* Reaction::Types::* + - Eliminate the ones we can spin into external MooseX::Types stuff + - re-export the types from MooseX::Types::Common as Reaction types + - same thing but with the DateTime and MooseX::Types::DateTime \ No newline at end of file diff --git a/lib/Reaction/UI/ViewPort/Collection/Grid/Member.pm b/lib/Reaction/UI/ViewPort/Collection/Grid/Member.pm index 02629a2..abea20f 100644 --- a/lib/Reaction/UI/ViewPort/Collection/Grid/Member.pm +++ b/lib/Reaction/UI/ViewPort/Collection/Grid/Member.pm @@ -41,6 +41,19 @@ around _build_fields_for_type_Reaction_Types_Core_Password => sub { return }; around _build_fields_for_type_ArrayRef => sub { return }; around _build_fields_for_type_Reaction_InterfaceModel_Collection => sub { return }; +#The types we'll be using going forward ... +around _build_fields_for_type_MooseX_Types_Common_String_Password => sub { return }; +around _build_fields_for_type_MooseX_Types_Common_String_SimpleStr => sub { + $_[0]->(@_[1,2], { layout => 'value/string', %{ $_[3] || {} } }) +}; +around _build_fields_for_type_MooseX_Types_DateTime_DateTime => sub { + $_[0]->(@_[1,2], { layout => 'value/date_time', %{ $_[3] || {} } }) +}; +around _build_fields_for_type_DateTime => sub { + $_[0]->(@_[1,2], { layout => 'value/date_time', %{ $_[3] || {} } }) +}; + + __PACKAGE__->meta->make_immutable; diff --git a/lib/Reaction/UI/ViewPort/Object.pm b/lib/Reaction/UI/ViewPort/Object.pm index ed68f20..431aa47 100644 --- a/lib/Reaction/UI/ViewPort/Object.pm +++ b/lib/Reaction/UI/ViewPort/Object.pm @@ -239,6 +239,25 @@ sub _build_fields_for_type_Reaction_InterfaceModel_Collection { $self->_build_simple_field(attribute => $attr, class => Collection, %$args); } +sub _build_fields_for_type_MooseX_Types_Common_String_SimpleStr { + my ($self, $attr, $args) = @_; + $self->_build_simple_field(attribute => $attr, class => String, %$args); +} + +sub _build_fields_for_type_MooseX_Types_Common_String_Password { + return; +} + +sub _build_fields_for_type_MooseX_Types_DateTime_DateTime { + my ($self, $attr, $args) = @_; + $self->_build_simple_field(attribute => $attr, class => DateTime, %$args); +} + +sub _build_fields_for_type_DateTime { + my ($self, $attr, $args) = @_; + $self->_build_simple_field(attribute => $attr, class => DateTime, %$args); +} + __PACKAGE__->meta->make_immutable; 1; diff --git a/lib/Reaction/UI/ViewPort/Object/Mutable.pm b/lib/Reaction/UI/ViewPort/Object/Mutable.pm index e58f1b4..2e207aa 100644 --- a/lib/Reaction/UI/ViewPort/Object/Mutable.pm +++ b/lib/Reaction/UI/ViewPort/Object/Mutable.pm @@ -103,6 +103,26 @@ sub _build_fields_for_type_ArrayRef { } } +sub _build_fields_for_type_MooseX_Types_Common_String_SimpleStr { + my ($self, $attr, $args) = @_; + $self->_build_simple_field(attribute => $attr, class => String, %$args); +} + +sub _build_fields_for_type_MooseX_Types_Common_String_Password { + my ($self, $attr, $args) = @_; + $self->_build_simple_field(attribute => $attr, class => Password, %$args); +} + +sub _build_fields_for_type_MooseX_Types_DateTime_DateTime { + my ($self, $attr, $args) = @_; + $self->_build_simple_field(attribute => $attr, class => DateTime, %$args); +} + +sub _build_fields_for_type_DateTime { + my ($self, $attr, $args) = @_; + $self->_build_simple_field(attribute => $attr, class => DateTime, %$args); +} + __PACKAGE__->meta->make_immutable; 1; diff --git a/t/lib/RTest/TestDB/Bar.pm b/t/lib/RTest/TestDB/Bar.pm index 98457f3..c7ffe62 100644 --- a/t/lib/RTest/TestDB/Bar.pm +++ b/t/lib/RTest/TestDB/Bar.pm @@ -5,13 +5,13 @@ use Moose; extends 'DBIx::Class'; use aliased 'RTest::TestDB::Foo'; -use Reaction::Types::Core qw/NonEmptySimpleStr/; -use Reaction::Types::DateTime qw//; +use MooseX::Types::Common::String qw/NonEmptySimpleStr/; +use MooseX::Types::DateTime qw/DateTime/; use Reaction::Types::File 'File'; has 'name' => (isa => NonEmptySimpleStr, is => 'rw', required => 1); has 'foo' => (isa => Foo, is => 'rw', required => 1); -has 'published_at' => (isa => Reaction::Types::DateTime::DateTime, is => 'rw'); +has 'published_at' => (isa => DateTime, is => 'rw'); has 'avatar' => (isa => File, is => 'rw'); use namespace::clean -except => [ 'meta' ]; diff --git a/t/lib/RTest/TestDB/Baz.pm b/t/lib/RTest/TestDB/Baz.pm index 7fb5a83..33e5e6c 100644 --- a/t/lib/RTest/TestDB/Baz.pm +++ b/t/lib/RTest/TestDB/Baz.pm @@ -5,7 +5,7 @@ use Moose; extends 'DBIx::Class::Core'; use MooseX::Types::Moose qw/ArrayRef Int/; -use Reaction::Types::Core qw/NonEmptySimpleStr/; +use MooseX::Types::Common::String qw/NonEmptySimpleStr/; has 'id' => (isa => Int, is => 'ro', required => 1); has 'name' => (isa => NonEmptySimpleStr, is => 'rw', required => 1); diff --git a/t/lib/RTest/TestDB/Foo.pm b/t/lib/RTest/TestDB/Foo.pm index 5031324..a8d063c 100644 --- a/t/lib/RTest/TestDB/Foo.pm +++ b/t/lib/RTest/TestDB/Foo.pm @@ -5,7 +5,7 @@ use Moose; extends 'DBIx::Class'; use MooseX::Types::Moose qw/ArrayRef Int/; -use Reaction::Types::Core qw/NonEmptySimpleStr/; +use MooseX::Types::Common::String qw/NonEmptySimpleStr/; has 'id' => (isa => Int, is => 'ro', required => 1); has 'first_name' => (isa => NonEmptySimpleStr, is => 'rw', required => 1);