Mercurial > pub > Impl
comparison _test/temp.pl @ 417:3ed0c58e9da3 ref20150831
working on di container, tests
author | cin |
---|---|
date | Mon, 02 Nov 2015 01:56:53 +0300 |
parents | 3d24b10dd0d5 |
children | 3f38dabaf5cc |
comparison
equal
deleted
inserted
replaced
416:cc2cf8c0edc2 | 417:3ed0c58e9da3 |
---|---|
3 use Carp; | 3 use Carp; |
4 use Time::HiRes qw(gettimeofday tv_interval); | 4 use Time::HiRes qw(gettimeofday tv_interval); |
5 use Scalar::Util qw(blessed refaddr); | 5 use Scalar::Util qw(blessed refaddr); |
6 use YAML::XS qw(Dump); | 6 use YAML::XS qw(Dump); |
7 | 7 |
8 print Dump { | 8 my $t = [gettimeofday]; |
9 services => [ | 9 |
10 { role => 'db', type => 'My::Data::Context', params => { '-ref' => 'some-role' } } | 10 use IMPL::require { |
11 Container => 'IMPL::Config::Container', | |
12 Service => 'IMPL::Config::ServiceDescriptor', | |
13 Reference => 'IMPL::Config::ReferenceDescriptor', | |
14 Value => 'IMPL::Config::ValueDescriptor' | |
15 }; | |
16 | |
17 my $c1 = Container->new(); | |
18 | |
19 $c1->Register('db', Service->new( | |
20 type => 'Foo::Data', | |
21 norequire => 1, | |
22 activation => 'container' | |
23 ) ); | |
24 | |
25 $c1->Register(['sec', 'ldap'], Reference->new('db') ); | |
26 | |
27 $c1->Register('mixed', Value->new([ | |
28 Reference->new('db'), | |
29 Reference->new('sec'), | |
30 Reference->new('ldap') | |
31 ])); | |
32 | |
33 my $c2 = Container->new($c1); | |
34 | |
35 my $data = [ $c1->Resolve('mixed')] ; | |
36 | |
37 print "Activated: ",tv_interval($t,[gettimeofday]),"\n"; | |
38 | |
39 print Dump($data); | |
40 | |
41 | |
42 package Foo::Data; | |
43 use IMPL::declare { | |
44 base => [ | |
45 'IMPL::Object' => undef | |
11 ] | 46 ] |
12 }; | 47 }; |
48 | |
13 1; | 49 1; |