Context-Singleton
view release on metacpan or search on metacpan
"license" => "artistic_2",
"module_name" => "Context::Singleton",
"recursive_test_files" => 1,
"requires" => {
"Class::Load" => 0,
"Exception::Class" => 0,
"Exporter::Tiny" => 0,
"List::MoreUtils" => 0,
"List::Util" => 0,
"Module::Pluggable::Object" => 0,
"Ref::Util" => 0,
"Scalar::Util" => 0,
"Sub::Install" => 0,
"Variable::Magic" => 0,
"feature" => 0,
"namespace::clean" => 0,
"overload" => 0,
"parent" => 0,
"perl" => "5.010",
"strict" => 0,
"warnings" => 0
}
},
"runtime" : {
"requires" : {
"Class::Load" : "0",
"Exception::Class" : "0",
"Exporter::Tiny" : "0",
"List::MoreUtils" : "0",
"List::Util" : "0",
"Module::Pluggable::Object" : "0",
"Ref::Util" : "0",
"Scalar::Util" : "0",
"Sub::Install" : "0",
"Variable::Magic" : "0",
"feature" : "0",
"namespace::clean" : "0",
"overload" : "0",
"parent" : "0",
"perl" : "5.010",
"strict" : "0",
"warnings" : "0"
Context::Singleton::Frame::Result:
file: lib/Context/Singleton/Frame/Result.pm
version: v1.0.5
requires:
Class::Load: '0'
Exception::Class: '0'
Exporter::Tiny: '0'
List::MoreUtils: '0'
List::Util: '0'
Module::Pluggable::Object: '0'
Ref::Util: '0'
Scalar::Util: '0'
Sub::Install: '0'
Variable::Magic: '0'
feature: '0'
namespace::clean: '0'
overload: '0'
parent: '0'
perl: '5.010'
strict: '0'
warnings: '0'
MYMETA.json view on Meta::CPAN
}
},
"runtime" : {
"requires" : {
"Class::Load" : "0",
"Exception::Class" : "0",
"Exporter::Tiny" : "0",
"List::MoreUtils" : "0",
"List::Util" : "0",
"Module::Pluggable::Object" : "0",
"Ref::Util" : "0",
"Scalar::Util" : "0",
"Sub::Install" : "0",
"Variable::Magic" : "0",
"feature" : "0",
"namespace::clean" : "0",
"overload" : "0",
"parent" : "0",
"perl" : "5.2018",
"strict" : "0",
"warnings" : "0"
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: '1.4'
name: Context-Singleton
requires:
Class::Load: '0'
Exception::Class: '0'
Exporter::Tiny: '0'
List::MoreUtils: '0'
List::Util: '0'
Module::Pluggable::Object: '0'
Ref::Util: '0'
Scalar::Util: '0'
Sub::Install: '0'
Variable::Magic: '0'
feature: '0'
namespace::clean: '0'
overload: '0'
parent: '0'
perl: '5.2018'
strict: '0'
warnings: '0'
requires "Class::Load" => "0";
requires "Exception::Class" => "0";
requires "Exporter::Tiny" => "0";
requires "List::MoreUtils" => "0";
requires "List::Util" => "0";
requires "Module::Pluggable::Object" => "0";
requires "Ref::Util" => "0";
requires "Scalar::Util" => "0";
requires "Sub::Install" => "0";
requires "Variable::Magic" => "0";
requires "feature" => "0";
requires "namespace::clean" => "0";
requires "overload" => "0";
requires "parent" => "0";
requires "perl" => "5.010";
requires "strict" => "0";
requires "warnings" => "0";
lib/Context/Singleton.pm view on Meta::CPAN
sub _exporter_expand_sub {
my ($class, $name, $args, $globals) = @_;
return $name => _by_frame_class_accessors ($globals->{frame_class})->{$name};
}
sub import {
my ($class, @params) = @_;
my $globals = Ref::Util::is_hashref ($params[0])
? shift @params
: {}
;
$globals->{into} //= scalar caller;
$class->SUPER::import ($globals, @params);
_by_frame_class_accessors ($globals->{frame_class})->{load_rules}->(@{ $globals->{load_path} })
if $globals->{load_path};
lib/Context/Singleton/Frame/DB.pm view on Meta::CPAN
use strict;
use warnings;
use feature 'state';
package Context::Singleton::Frame::DB;
our $VERSION = v1.0.5;
use Class::Load;
use Module::Pluggable::Object;
use Ref::Util;
use Context::Singleton::Frame::Builder::Value;
use Context::Singleton::Frame::Builder::Hash;
use Context::Singleton::Frame::Builder::Array;
sub new {
my ($class) = @_;
my $self = bless {
cache => {},
lib/Context/Singleton/Frame/DB.pm view on Meta::CPAN
as => eval "sub { \$_[0]->(q[$name]) && q[$name] }",
));
return;
}
sub _guess_builder_class {
my ($self, $def) = @_;
return 'Context::Singleton::Frame::Builder::Value' if exists $def->{value};
return 'Context::Singleton::Frame::Builder::Hash' if Ref::Util::is_hashref ($def->{dep});
return 'Context::Singleton::Frame::Builder::Array'
}
sub contrive {
my ($self, $name, %def) = @_;
if ($def{class}) {
$self->_contrive_class_loader ($def{class});
$def{builder} //= 'new';
}
t/lib/Examples/Context/Singleton/Frame/Builder.pm view on Meta::CPAN
use v5.10;
use strict;
use warnings;
package Examples::Context::Singleton::Frame::Builder;
our $VERSION = v1.0.0;
use Test::Spec::Util;
use Hash::Util;
use Ref::Util qw[ is_plain_arrayref ];
example expect_required => as {
my ($title, %params) = @_;
Hash::Util::lock_keys %params, qw[ object expect ];
my $object = $params{object} // shared->object;
my $expect = $params{expect} // [];
$expect = bag (@$expect)
if not is_test_deep_comparision ($expect) and is_plain_arrayref ($expect);
t/lib/Sample/Context/Singleton.pm view on Meta::CPAN
use v5.10;
use strict;
use warnings;
package Sample::Context::Singleton;
our $VERSION = v1.0.0;
use parent 'Context::Singleton';
use Ref::Util;
our @EXPORT = @Context::Singleton::EXPORT;
sub import {
my ($class, @params) = @_;
my $globals = Ref::Util::is_hashref ($params[0])
? shift @params
: {}
;
$globals->{into} //= scalar caller;
$globals->{load_path} //= [];
push @{ $globals->{load_path} }, 'Sample::Context::Singleton::001';
$class->SUPER::import ($globals, @params);
}
t/lib/Test/Spec/Util.pm view on Meta::CPAN
use warnings;
use feature 'state';
package Test::Spec::Util;
our $VERSION = v1.0.0;
use parent 'Exporter';
use Hash::Util qw[ ];
use Ref::Util qw[ is_coderef ];
use Scalar::Util qw[ ];
use Sub::Install qw[ ];
use Sub::Name qw[ ];
use Sub::Override qw[ ];
use Sub::Uplevel qw[ ];
use Test::More 0.94;
use Test::Deep;
use Test::Exception;
( run in 0.538 second using v1.01-cache-2.11-cpan-a5abf4f5562 )