MooX-Object-Pluggable
view release on metacpan or search on metacpan
"dist_abstract" => "Moo eXtension to inject plugins to exist objects as a role",
"dist_author" => [
"Huo Linhe <linhehuo\@gmail.com>"
],
"dist_name" => "MooX-Object-Pluggable",
"dist_version" => "0.0.5",
"license" => "perl",
"module_name" => "MooX::Object::Pluggable",
"recursive_test_files" => 1,
"requires" => {
"Modern::Perl" => 0,
"Module::Pluggable::Object" => 0,
"Moo::Role" => 0,
"Scalar::Util" => 0,
"namespace::clean" => 0
},
"test_requires" => {
"Module::Find" => 0,
"Moo" => 0,
"MooX" => 0,
"Role::Tiny" => 0,
"Module::Build" : "0.28"
}
},
"configure" : {
"requires" : {
"Module::Build" : "0.28"
}
},
"runtime" : {
"requires" : {
"Modern::Perl" : "0",
"Module::Pluggable::Object" : "0",
"Moo::Role" : "0",
"Scalar::Util" : "0",
"namespace::clean" : "0"
}
},
"test" : {
"requires" : {
"Module::Find" : "0",
"Moo" : "0",
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: '1.4'
name: MooX-Object-Pluggable
no_index:
directory:
- inc
- share
- t
- xt
requires:
Modern::Perl: '0'
Module::Pluggable::Object: '0'
Moo::Role: '0'
Scalar::Util: '0'
namespace::clean: '0'
version: 0.0.5
x_serialization_backend: 'YAML::Tiny version 1.69'
lib/MooX/Object/Pluggable.pm view on Meta::CPAN
package MooX::Object::Pluggable;
use Moo::Role;
use Modern::Perl;
use Scalar::Util 'refaddr';
require Module::Pluggable::Object;
use namespace::clean;
our $VERSION = '0.0.5'; # VERSION
# ABSTRACT: Moo eXtension to inject plugins to exist objects as a role
sub _apply_roles {
my ($self, @roles) = @_;
t/00-load-classes.t view on Meta::CPAN
use Modern::Perl;
use Test::More;
use Module::Find;
my $module = 'MooX::Object::Pluggable';
use_ok($_) foreach findallmod $module;
use_ok($module);
done_testing;
t/01-podsyntax.t view on Meta::CPAN
use Modern::Perl;
use Test::More;
use Test::Pod;
all_pod_files_ok;
t/90-moox-object-pluggable.t view on Meta::CPAN
use Modern::Perl;
use Test::More;
my $module = 'MooX::Object::Pluggable';
use_ok($module);
package main;
{ package CC; use Moo; use namespace::clean; with 'MooX::Object::Pluggable'; }
{ package CC::Plugin::Aisarole; use Moo::Role; }
{ package CC::Plugin::Cisarole; use Moo::Role; }
{ package CC::Plugin::Bnotarole; } # this is not a plugin.
{ package CC::Other::Plugin; use Role::Tiny; }
t/91-import.t view on Meta::CPAN
use Modern::Perl;
use Test::More;
package main;
{
package A::Hello;
use Moo::Role;
sub hello { "Hello" }
1;
}
t/92-external-use.t view on Meta::CPAN
use Modern::Perl;
use lib "t/lib";
use Test::More;
use MyPackage -load_plugins => ['Hello'];
my $obj = MyPackage->new;
can_ok($obj, "load_plugins");
can_ok($obj, 'hello');
done_testing;
t/lib/MyPackage.pm view on Meta::CPAN
package MyPackage;
use Modern::Perl;
use Moo;
use MooX::Object::Pluggable;
1;
( run in 0.307 second using v1.01-cache-2.11-cpan-4d50c553e7e )