From e739c9a211e3a55714904f6c75843e8902226214 Mon Sep 17 00:00:00 2001 From: wreis Date: Mon, 7 Jan 2008 16:14:58 +0000 Subject: port the reaction type system to MooseX::Types --- Makefile.PL | 1 + lib/Reaction/Class.pm | 2 +- lib/Reaction/InterfaceModel/Action/DBIC/Result/Delete.pm | 4 ++-- lib/Reaction/InterfaceModel/Action/DBIC/Result/Update.pm | 4 ++-- lib/Reaction/InterfaceModel/Action/DBIC/ResultSet/Create.pm | 4 ++-- lib/Reaction/InterfaceModel/Action/DBIC/ResultSet/DeleteAll.pm | 4 ++-- lib/Reaction/Types/Core.pm | 9 +++++++-- lib/Reaction/Types/DBIC.pm | 8 +++++--- lib/Reaction/Types/DateTime.pm | 6 ++++-- lib/Reaction/Types/Email.pm | 5 ++++- lib/Reaction/Types/File.pm | 4 +++- lib/Reaction/UI/ViewPort/Field/TimeRange.pm | 2 +- 12 files changed, 34 insertions(+), 19 deletions(-) diff --git a/Makefile.PL b/Makefile.PL index 2cab1d2..d4def09 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -30,6 +30,7 @@ requires 'Email::MIME'; requires 'Email::MIME::Creator'; requires 'Text::CSV_XS'; requires 'Devel::Declare' => '0.001006'; +requires 'MooseX::Types' => '0.04'; catalyst; diff --git a/lib/Reaction/Class.pm b/lib/Reaction/Class.pm index fcaf0a5..b3cf253 100644 --- a/lib/Reaction/Class.pm +++ b/lib/Reaction/Class.pm @@ -3,7 +3,7 @@ package Reaction::Class; use Moose qw(confess); use Sub::Exporter (); use Sub::Name (); -use Reaction::Types::Core; +use Reaction::Types::Core ':all'; use Reaction::Object; sub exporter_for_package { diff --git a/lib/Reaction/InterfaceModel/Action/DBIC/Result/Delete.pm b/lib/Reaction/InterfaceModel/Action/DBIC/Result/Delete.pm index edc3c79..14ae6dc 100644 --- a/lib/Reaction/InterfaceModel/Action/DBIC/Result/Delete.pm +++ b/lib/Reaction/InterfaceModel/Action/DBIC/Result/Delete.pm @@ -1,10 +1,10 @@ package Reaction::InterfaceModel::Action::DBIC::Result::Delete; -use Reaction::Types::DBIC; +use Reaction::Types::DBIC 'Row'; use Reaction::Class; class Delete is 'Reaction::InterfaceModel::Action', which { - has '+target_model' => (isa => 'DBIx::Class::Row'); + has '+target_model' => (isa => 'Row'); sub can_apply { 1 } diff --git a/lib/Reaction/InterfaceModel/Action/DBIC/Result/Update.pm b/lib/Reaction/InterfaceModel/Action/DBIC/Result/Update.pm index a1387ef..34ac7f2 100644 --- a/lib/Reaction/InterfaceModel/Action/DBIC/Result/Update.pm +++ b/lib/Reaction/InterfaceModel/Action/DBIC/Result/Update.pm @@ -1,14 +1,14 @@ package Reaction::InterfaceModel::Action::DBIC::Result::Update; use Reaction::InterfaceModel::Action; -use Reaction::Types::DBIC; +use Reaction::Types::DBIC 'Row'; use Reaction::Class; class Update is 'Reaction::InterfaceModel::Action', which { does 'Reaction::InterfaceModel::Action::DBIC::Role::CheckUniques'; - has '+target_model' => (isa => 'DBIx::Class::Row'); + has '+target_model' => (isa => 'Row'); implements BUILD => as { my ($self) = @_; diff --git a/lib/Reaction/InterfaceModel/Action/DBIC/ResultSet/Create.pm b/lib/Reaction/InterfaceModel/Action/DBIC/ResultSet/Create.pm index f67a77c..07e949b 100644 --- a/lib/Reaction/InterfaceModel/Action/DBIC/ResultSet/Create.pm +++ b/lib/Reaction/InterfaceModel/Action/DBIC/ResultSet/Create.pm @@ -1,6 +1,6 @@ package Reaction::InterfaceModel::Action::DBIC::ResultSet::Create; -use Reaction::Types::DBIC; +use Reaction::Types::DBIC 'ResultSet'; use Reaction::Class; use Reaction::InterfaceModel::Action; use Reaction::InterfaceModel::Action::DBIC::Role::CheckUniques; @@ -9,7 +9,7 @@ class Create is 'Reaction::InterfaceModel::Action', which { does 'Reaction::InterfaceModel::Action::DBIC::Role::CheckUniques'; - has '+target_model' => (isa => 'DBIx::Class::ResultSet'); + has '+target_model' => (isa => 'ResultSet'); implements do_apply => as { my $self = shift; diff --git a/lib/Reaction/InterfaceModel/Action/DBIC/ResultSet/DeleteAll.pm b/lib/Reaction/InterfaceModel/Action/DBIC/ResultSet/DeleteAll.pm index e1b2ed6..e6dfe3a 100644 --- a/lib/Reaction/InterfaceModel/Action/DBIC/ResultSet/DeleteAll.pm +++ b/lib/Reaction/InterfaceModel/Action/DBIC/ResultSet/DeleteAll.pm @@ -1,12 +1,12 @@ package Reaction::InterfaceModel::Action::DBIC::ResultSet::DeleteAll; -use Reaction::Types::DBIC; +use Reaction::Types::DBIC 'ResultSet'; use Reaction::Class; use Reaction::InterfaceModel::Action; class DeleteAll is 'Reaction::InterfaceModel::Action', which { - has '+target_model' => (isa => 'DBIx::Class::ResultSet'); + has '+target_model' => (isa => 'ResultSet'); sub can_apply { 1 } diff --git a/lib/Reaction/Types/Core.pm b/lib/Reaction/Types/Core.pm index cb904a3..8faa6ed 100644 --- a/lib/Reaction/Types/Core.pm +++ b/lib/Reaction/Types/Core.pm @@ -1,6 +1,10 @@ package Reaction::Types::Core; -use Moose::Util::TypeConstraints; +use MooseX::Types + -declare => [qw/SimpleStr NonEmptySimpleStr Password StrongPassword + NonEmptyStr PositiveNum PositiveInt SingleDigit/]; + +use MooseX::Types::Moose qw/Str Num Int/; subtype 'SimpleStr' => as 'Str' @@ -22,7 +26,8 @@ subtype 'Password' subtype 'StrongPassword' => as 'Password' => where { (length($_) > 7) && (m/[^a-zA-Z]/) } - => message { "Must be between 8 and 255 chars, and contain a non-alpha char" }; + => message { + "Must be between 8 and 255 chars, and contain a non-alpha char" }; subtype 'NonEmptyStr' => as 'Str' diff --git a/lib/Reaction/Types/DBIC.pm b/lib/Reaction/Types/DBIC.pm index 66601c7..3efd7db 100644 --- a/lib/Reaction/Types/DBIC.pm +++ b/lib/Reaction/Types/DBIC.pm @@ -1,17 +1,19 @@ package Reaction::Types::DBIC; -use Moose::Util::TypeConstraints; +use MooseX::Types + -declare => [qw/ResultSet Row/]; +use MooseX::Types::Moose 'Object'; use DBIx::Class::ResultSet; -subtype 'DBIx::Class::ResultSet' +subtype 'ResultSet' => as 'Object' => where { $_->isa('DBIx::Class::ResultSet') }; use DBIx::Class::Core; use DBIx::Class::Row; -subtype 'DBIx::Class::Row' +subtype 'Row' => as 'Object' => where { $_->isa('DBIx::Class::Row') }; diff --git a/lib/Reaction/Types/DateTime.pm b/lib/Reaction/Types/DateTime.pm index 60fbabd..b3797cf 100644 --- a/lib/Reaction/Types/DateTime.pm +++ b/lib/Reaction/Types/DateTime.pm @@ -1,7 +1,9 @@ package Reaction::Types::DateTime; -use Moose::Util::TypeConstraints; +use MooseX::Types + -declare => [qw/DateTime SpanSet TimeRangeCollection/]; +use MooseX::Types::Moose qw/Object ArrayRef/; use DateTime; subtype 'DateTime' @@ -11,7 +13,7 @@ subtype 'DateTime' use DateTime::SpanSet; -subtype 'DateTime::SpanSet' +subtype 'SpanSet' => as 'Object' => where { $_->isa('DateTime::SpanSet') }; diff --git a/lib/Reaction/Types/Email.pm b/lib/Reaction/Types/Email.pm index 0bf9adc..faa165f 100644 --- a/lib/Reaction/Types/Email.pm +++ b/lib/Reaction/Types/Email.pm @@ -1,6 +1,9 @@ package Reaction::Types::Email; -use Moose::Util::TypeConstraints; +use MooseX::Types + -declare => [qw/EmailAddress/]; + +use Reaction::Types::Core 'NonEmptySimpleStr'; use Email::Valid; subtype 'EmailAddress' diff --git a/lib/Reaction/Types/File.pm b/lib/Reaction/Types/File.pm index dc17e36..6274a7b 100644 --- a/lib/Reaction/Types/File.pm +++ b/lib/Reaction/Types/File.pm @@ -1,7 +1,9 @@ package Reaction::Types::File; -use Moose::Util::TypeConstraints; +use MooseX::Types + -declare => [qw/File/]; +use MooseX::Types::Moose 'Object'; use Catalyst::Request::Upload; subtype 'File' diff --git a/lib/Reaction/UI/ViewPort/Field/TimeRange.pm b/lib/Reaction/UI/ViewPort/Field/TimeRange.pm index 6f6573e..a63fdf4 100644 --- a/lib/Reaction/UI/ViewPort/Field/TimeRange.pm +++ b/lib/Reaction/UI/ViewPort/Field/TimeRange.pm @@ -8,7 +8,7 @@ use Time::ParseDate (); class TimeRange is 'Reaction::UI::ViewPort::Field', which { - has '+value' => (isa => 'DateTime::SpanSet'); + has '+value' => (isa => 'SpanSet'); #has '+layout' => (default => 'timerange'); -- cgit v1.2.3-54-g00ecf