MooX-Object-Pluggable

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN

  "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,

META.json  view on Meta::CPAN

            "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",

META.yml  view on Meta::CPAN

  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 )