MooX-Types-SetObject-1.01/0000755000175000017500000000000012116404404014667 5ustar hunterhunterMooX-Types-SetObject-1.01/META.yml0000664000175000017500000000135212116404404016143 0ustar hunterhunter--- abstract: 'Set::Object type' author: - 'mateu - Mateu X. Hunter (cpan:MATEU) ' build_requires: Test::Fatal: 0.003 Test::More: 0.96 configure_requires: ExtUtils::MakeMaker: 0 dynamic_config: 1 generated_by: 'ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.120921' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 name: MooX-Types-SetObject no_index: directory: - t - inc requires: MooX::Types::MooseLike: 0.23 Set::Object: 0 resources: bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooX-Types-SetObject repository: git://github.com/mateu/MooX-Types-SetObject.git x_IRC: irc://irc.perl.org/#web-simple version: 1.01 MooX-Types-SetObject-1.01/Changes0000644000175000017500000000020512116404301016153 0ustar hunterhunter1.01 - 2013-03-08 - Adjust dependencies 1.00 - 2013-03-07 - Extracted from MooX::Types::MooseLike as its own distribution MooX-Types-SetObject-1.01/lib/0000755000175000017500000000000012116404404015435 5ustar hunterhunterMooX-Types-SetObject-1.01/lib/MooX/0000755000175000017500000000000012116404404016317 5ustar hunterhunterMooX-Types-SetObject-1.01/lib/MooX/Types/0000755000175000017500000000000012116404404017423 5ustar hunterhunterMooX-Types-SetObject-1.01/lib/MooX/Types/SetObject.pm0000644000175000017500000000176112116404113021645 0ustar hunterhunterpackage MooX::Types::SetObject; use strict; use warnings FATAL => 'all'; use MooX::Types::MooseLike qw(exception_message); use Scalar::Util; use Exporter 5.57 'import'; our @EXPORT_OK = (); our $VERSION = '1.01'; my $type_definitions = [ { name => 'SetObject', test => sub { require Scalar::Util; defined $_[0] and Scalar::Util::blessed($_[0]) and $_[0]->isa("Set::Object"); }, message => sub { return exception_message($_[0], 'a Set::Object') }, parameterizable => sub { $_[0]->members }, inflate => 0, }, ]; MooX::Types::MooseLike::register_types($type_definitions, __PACKAGE__); our %EXPORT_TAGS = ('all' => \@EXPORT_OK); 1; __END__ =head1 NAME MooX::Types::SetObject - Set::Object type =head1 SYNOPSIS package MyPackage; use Moo; use MooX::Types::MooseLike::Base qw(Int); use MooX::Types::SetObject qw(SetObject); # a Set::Object of integers has "int_objects" => ( isa => SetObject[Int], ); MooX-Types-SetObject-1.01/MANIFEST0000644000175000017500000000054612116404404016025 0ustar hunterhunterChanges lib/MooX/Types/SetObject.pm maint/Makefile.PL.include Makefile.PL MANIFEST This list of files t/set_object.t META.yml Module YAML meta-data (added by MakeMaker) META.json Module JSON meta-data (added by MakeMaker) README README file (added by Distar) MooX-Types-SetObject-1.01/META.json0000664000175000017500000000235712116404404016321 0ustar hunterhunter{ "abstract" : "Set::Object type", "author" : [ "mateu - Mateu X. Hunter (cpan:MATEU) " ], "dynamic_config" : 1, "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.120921", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : "2" }, "name" : "MooX-Types-SetObject", "no_index" : { "directory" : [ "t", "inc" ] }, "prereqs" : { "build" : { "requires" : { "Test::Fatal" : "0.003", "Test::More" : "0.96" } }, "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0" } }, "runtime" : { "requires" : { "MooX::Types::MooseLike" : "0.23", "Set::Object" : "0" } } }, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooX-Types-SetObject" }, "repository" : { "url" : "git://github.com/mateu/MooX-Types-SetObject.git" }, "x_IRC" : "irc://irc.perl.org/#web-simple" }, "version" : "1.01" } MooX-Types-SetObject-1.01/Makefile.PL0000644000175000017500000000137112116403764016653 0ustar hunterhunteruse strict; use warnings FATAL => 'all'; use 5.008001; use ExtUtils::MakeMaker; (do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml'; my %RUN_DEPS = ( 'Set::Object' => 0, 'MooX::Types::MooseLike' => 0.23, ); my %BUILD_DEPS = ( 'Test::More' => 0.96, 'Test::Fatal' => 0.003, ); WriteMakefile( NAME => 'MooX-Types-SetObject', VERSION_FROM => 'lib/MooX/Types/SetObject.pm', PREREQ_PM => { %RUN_DEPS, }, BUILD_REQUIRES => { %BUILD_DEPS, }, META_ADD => { resources => { repository => 'git://github.com/mateu/MooX-Types-SetObject.git', bugtracker => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooX-Types-SetObject', IRC => 'irc://irc.perl.org/#web-simple', }, }, LICENSE => 'perl', ); MooX-Types-SetObject-1.01/README0000664000175000017500000000050012116404404015544 0ustar hunterhunterNAME MooX::Types::SetObject - Set::Object type SYNOPSIS package MyPackage; use Moo; use MooX::Types::MooseLike::Base qw(Int); use MooX::Types::SetObject qw(SetObject); # a Set::Object of integers has "int_objects" => ( isa => SetObject[Int], ); MooX-Types-SetObject-1.01/maint/0000755000175000017500000000000012116404404015777 5ustar hunterhunterMooX-Types-SetObject-1.01/maint/Makefile.PL.include0000644000175000017500000000030611755211553021403 0ustar hunterhunterBEGIN { -e 'Distar' or system("git clone git://git.shadowcat.co.uk/p5sagit/Distar.git") } use lib 'Distar/lib'; use Distar; author 'mateu - Mateu X. Hunter (cpan:MATEU) '; 1; MooX-Types-SetObject-1.01/t/0000755000175000017500000000000012116404404015132 5ustar hunterhunterMooX-Types-SetObject-1.01/t/set_object.t0000644000175000017500000000375012110025205017435 0ustar hunterhunter{ package MooX::Types::MooseLike::Test; use strict; use warnings FATAL => 'all'; use Moo; use MooX::Types::MooseLike::Base qw/ Int /; use MooX::Types::SetObject qw/ SetObject /; has set_object_of_ints => ( is => 'ro', isa => SetObject[Int], ); } package main; use strict; use warnings FATAL => 'all'; use Test::More; use Test::Fatal; BEGIN { eval { require Set::Object }; plan skip_all => 'SetObject tests need Set::Object' if $@; } # Set::Object ok( MooX::Types::MooseLike::Test->new( set_object_of_ints => Set::Object->new(1, 2, 3), ), 'Set::Object of integers' ); like( exception { MooX::Types::MooseLike::Test->new( set_object_of_ints => Set::Object->new('fREW'),); }, qr(fREW is not an integer), 'Int eror mesage is triggered when validation fails' ); eval q{ require Moose } or do { note "Moose not available; skipping actual inflation tests"; done_testing; exit; }; my $tc = do { $SIG{__WARN__} = sub { 0 }; MooX::Types::MooseLike::Test->meta->get_attribute('set_object_of_ints')->type_constraint; }; is( exception { MooX::Types::MooseLike::Test->new(set_object_of_ints => Set::Object->new(1..4)) }, undef, 'Moose loaded; value which should not violate type constraint', ); like( exception { MooX::Types::MooseLike::Test->new(set_object_of_ints => Set::Object->new(1.1, 2.0, 4)) }, qr{set_object_of_ints" failed: 1.1 is not an integer}, 'Moose loaded; value which should violate type constraint', ); is( $tc->name, '__ANON__', 'type constraint inflation results in an anonymous type', ); ok($tc->check(Set::Object->new(16..18)), 'Moose::Meta::TypeConstraint works (1)'); ok($tc->check(Set::Object->new(0,1)), 'Moose::Meta::TypeConstraint works (2)'); ok(!$tc->check('Monkey'), 'Moose::Meta::TypeConstraint works (3)'); ok(!$tc->check([1,2]), 'Moose::Meta::TypeConstraint works (4)'); ok(!$tc->check(Set::Object->new(0,1.1)), 'Moose::Meta::TypeConstraint works (5)'); done_testing;