more cleanup, fixes
[catagits/Catalyst-Runtime.git] / t / lib / TestAppCustomContainer / NoSugarContainer.pm
1 package TestAppCustomContainer::NoSugarContainer;
2 use Moose;
3 use namespace::autoclean;
4 use Catalyst::IOC;
5
6 extends 'Catalyst::IOC::Container';
7
8 sub BUILD {
9     my $self = shift;
10
11     warn("Add SingletonLifeCycle to model");
12     $self->get_sub_container('model')->add_service(
13         Catalyst::IOC::ConstructorInjection->new(
14             name             => 'SingletonLifeCycle',
15             lifecycle        => 'Singleton',
16             class            => 'TestAppCustomContainer::Model::SingletonLifeCycle',
17             catalyst_component_name => 'TestAppCustomContainer::Model::SingletonLifeCycle',
18             dependencies     => {
19                 application_name => depends_on( '/application_name' ),
20                 foo => depends_on('/model/DefaultSetup'),
21             },
22         )
23     );
24
25     warn("Add RequestLifeCycle to model");
26     $self->get_sub_container('model')->add_service(
27         Catalyst::IOC::ConstructorInjection->new(
28             name         => 'RequestLifeCycle',
29             lifecycle    => '+Catalyst::IOC::LifeCycle::Request',
30             class        => 'TestAppCustomContainer::Model::RequestLifeCycle',
31             catalyst_component_name => 'TestAppCustomContainer::Model::RequestLifeCycle',
32             dependencies => {
33                 application_name => depends_on( '/application_name' ),
34                 foo => depends_on('/model/DefaultSetup'),
35             },
36         )
37     );
38
39 # Broken deps!?!
40 #    $self->get_sub_container('model')->add_service(
41 #        Catalyst::IOC::BlockInjection->new(
42 #            name         => 'Quux',
43 #            lifecycle    => 'Singleton',
44 #            dependencies => [
45 #                depends_on( '/component/model_Quux' ),
46 #            ],
47 #            block => sub { shift->param('model_Bar') },
48 #        )
49 #    );
50
51 #    my $fnar_config = $self->resolve(service => 'config')->{'Model::Fnar'} || {};
52 #    $self->get_sub_container('component')->add_service(
53 #        Catalyst::IOC::ConstructorInjection->new(
54 #            name         => 'model_Fnar',
55 #            lifecycle    => 'Singleton',
56 #            class        => 'TestAppCustomContainer::External::Class',
57 #            dependencies => [
58 #                depends_on( '/application_name' ),
59 #            ],
60 #            config => $fnar_config,
61 #        )
62 #    );
63 #    $self->get_sub_container('model')->add_service(
64 #        Catalyst::IOC::BlockInjection->new(
65 #            name         => 'model_Fnar',
66 #            lifecycle    => 'Singleton',
67 #            dependencies => [
68 #                depends_on( '/config' ),
69 #                depends_on( '/component/model_Fnar' ),
70 #            ],
71 #            block => sub { shift->param('model_Fnar') },
72 #        )
73 #    );
74 }
75
76 __PACKAGE__->meta->make_immutable;
77
78 1;