| MooseX-Types documentation | Contained in the MooseX-Types distribution. |
MooseX::Types::Wrapper - Wrap exports from a library
version 0.27
See SYNOPSIS in MooseX::Types for detailed usage.
This program is free software; you can redistribute it and/or modify it under the same terms as perl itself.
Robert "phaylon" Sedlacek <rs@474.at>
This software is copyright (c) 2011 by Robert "phaylon" Sedlacek.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
| MooseX-Types documentation | Contained in the MooseX-Types distribution. |
package MooseX::Types::Wrapper; BEGIN { $MooseX::Types::Wrapper::VERSION = '0.27'; } #ABSTRACT: Wrap exports from a library use Moose; use Carp::Clan qw( ^MooseX::Types ); use Class::MOP; use namespace::clean -except => [qw( meta )]; extends 'MooseX::Types'; sub import { my ($class, @args) = @_; my %libraries = @args == 1 ? (Moose => $args[0]) : @args; for my $l (keys %libraries) { croak qq($class expects an array reference as import spec) unless ref $libraries{ $l } eq 'ARRAY'; my $library_class = ($l eq 'Moose' ? 'MooseX::Types::Moose' : $l ); Class::MOP::load_class($library_class); $library_class->import({ -into => scalar(caller), -wrapper => $class, }, @{ $libraries{ $l } }); } return 1; } 1; __END__