Context-Singleton

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN

  "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

META.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.010",
            "strict" : "0",
            "warnings" : "0"

META.yml  view on Meta::CPAN

  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"

MYMETA.yml  view on Meta::CPAN

  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'

cpanfile  view on Meta::CPAN

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 )