X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FTypes%2FCombine.pm;h=010f15ad16c79a84c808e995fc2ac48d1d814c6a;hb=be4acfcc5d2506856b9ccb9ed6df4f5e1fb49a49;hp=bb8d16605e79999999a33457392ca1cb28efe360;hpb=587387ef2f83406f38366f596df535e167237583;p=gitmo%2FMooseX-Types.git diff --git a/lib/MooseX/Types/Combine.pm b/lib/MooseX/Types/Combine.pm index bb8d166..010f15a 100644 --- a/lib/MooseX/Types/Combine.pm +++ b/lib/MooseX/Types/Combine.pm @@ -1,11 +1,6 @@ -=head1 NAME - -MooseX::Types::Combine - Combine type libraries for exporting - -=cut - package MooseX::Types::Combine; -our $VERSION = "0.24"; + +# ABSTRACT: Combine type libraries for exporting use strict; use warnings; @@ -38,6 +33,11 @@ sub import { my %types = $class->_provided_types; + if ( grep { $_ eq ':all' } @types ){ + $_->import({ -into => $caller }, q{:all} ) for $class->provide_types_from; + return; + } + my %from; for my $type (@types) { unless ($types{$type}) { @@ -84,6 +84,15 @@ sub provide_types_from { @$store; } +sub _check_type_lib { + my ($class, $lib) = @_; + + Class::MOP::load_class($lib); + + die "Cannot use $lib in a combined type library, it does not provide any types" + unless $lib->can('type_names'); +} + sub _provided_types { my ($class, %types) = @_; @@ -96,23 +105,10 @@ sub _provided_types { %$types; } -sub _check_type_lib { - my ($class, $lib) = @_; - - Class::MOP::load_class($lib); - - die "Cannot use $lib in a combined type library, it does not provide any types" - unless $lib->can('type_names'); -} - =head1 SEE ALSO L -=head1 AUTHOR - -See L. - =head1 LICENSE This program is free software; you can redistribute it and/or modify