removed solved fixme's
[catagits/Catalyst-Runtime.git] / t / lib / TestAppCustomContainer / NoSugarContainer.pm
CommitLineData
88cea23c 1package TestAppCustomContainer::NoSugarContainer;
3ef84846 2use Moose;
88cea23c 3use namespace::autoclean;
4use Catalyst::IOC;
3ef84846 5
6extends 'Catalyst::IOC::Container';
7
8sub BUILD {
9 my $self = shift;
f831deb1 10
11 $self->get_sub_container('component')->add_service(
12 Catalyst::IOC::ConstructorInjection->new(
13 name => 'model_Bar',
14 class => 'TestAppCustomContainer::Model::Bar',
15 dependencies => [
16 depends_on( '/application_name' ),
17 depends_on( '/config' ),
18 depends_on( '/model/Foo' ),
19 ],
20 )
21 );
22 $self->get_sub_container('model')->add_service(
23 Catalyst::IOC::BlockInjection->new(
24 name => 'Bar',
25 dependencies => [
26 depends_on( '/model/Foo' ),
27 depends_on( '/component/model_Bar' ),
28 ],
29 block => sub {
30 my $s = shift;
31 my $foo = $s->param('Foo');
32 my $instance = $s->param('model_Bar');
33 return $instance;
34 },
35 )
36 );
37
3ef84846 38 $self->get_sub_container('component')->add_service(
39 Catalyst::IOC::ConstructorInjection->new(
40 name => 'model_Baz',
88cea23c 41 class => 'TestAppCustomContainer::Model::Baz',
b18a77bd 42 lifecycle => '+Catalyst::IOC::LifeCycle::Request',
3ef84846 43 dependencies => [
44 depends_on( '/application_name' ),
45 depends_on( '/config' ),
46 depends_on( '/model/Foo' ),
47 ],
48 )
49 );
50 $self->get_sub_container('model')->add_service(
51 Catalyst::IOC::BlockInjection->new(
52 name => 'Baz',
53 dependencies => [
54 depends_on( '/model/Foo' ),
55 depends_on( '/component/model_Baz' ),
56 ],
57 block => sub {
58 my $s = shift;
59 my $foo = $s->param('Foo');
60 my $instance = $s->param('model_Baz');
61 return $instance;
62 },
63 )
64 );
f831deb1 65
66 $self->get_sub_container('model')->add_service(
67 Catalyst::IOC::BlockInjection->new(
68 name => 'Quux',
f831deb1 69 lifecycle => 'Singleton',
70 dependencies => [
71 depends_on( '/component/model_Quux' ),
72 ],
73 block => sub { shift->param('model_Bar') },
74 )
75 );
76
77 $self->get_sub_container('component')->add_service(
78 Catalyst::IOC::ConstructorInjection->new(
79 name => 'model_Fnar',
80 lifecycle => 'Singleton',
81 class => 'My::External::Class',
82 dependencies => [
83 depends_on( '/application_name' ),
84 depends_on( '/config' ),
85 ],
86 )
87 );
88 $self->get_sub_container('model')->add_service(
89 Catalyst::IOC::BlockInjection->new(
90 name => 'model_Fnar',
91 lifecycle => 'Singleton',
92 dependencies => [
93 depends_on( '/config' ),
94 depends_on( '/component/model_Fnar' ),
95 ],
96 block => sub { shift->param('model_Fnar') },
97 )
98 );
3ef84846 99}
100
88cea23c 101__PACKAGE__->meta->make_immutable;
102
3ef84846 1031;