Mercurial > pub > Impl
comparison Lib/IMPL/Config.pm @ 58:a35b60b16a99
Configuration, late activation
author | wizard |
---|---|
date | Fri, 05 Mar 2010 20:14:45 +0300 |
parents | 16ada169ca75 |
children | b0c068da93ac |
comparison
equal
deleted
inserted
replaced
57:bf59ee1cd506 | 58:a35b60b16a99 |
---|---|
81 my $name = $info->Name; | 81 my $name = $info->Name; |
82 $ctx->AddVar($name => $this->$name()) if $this->$name(); | 82 $ctx->AddVar($name => $this->$name()) if $this->$name(); |
83 } | 83 } |
84 } | 84 } |
85 | 85 |
86 sub spawn { | |
87 goto &LoadXMLFile; | |
88 } | |
89 | |
86 1; | 90 1; |
87 __END__ | 91 __END__ |
88 | 92 |
89 =pod | 93 =pod |
90 | 94 |
97 use IMPL::Config::Class; | 101 use IMPL::Config::Class; |
98 | 102 |
99 BEGIN { | 103 BEGIN { |
100 public property SimpleString => prop_all; | 104 public property SimpleString => prop_all; |
101 public property MyClass => prop_all; | 105 public property MyClass => prop_all; |
106 public lazy property DataSource => prop_all, {type => 'App::DataSource', factory => sub {}}; | |
102 } | 107 } |
103 | 108 |
104 sub CTOR { | 109 sub CTOR { |
105 my $this = shift; | 110 my $this = shift; |
106 $this->superCTOR(@_); | 111 $this->superCTOR(@_); |
107 | 112 |
108 $this->MyClass(new IMPL::Config::Class(Type => MyClass)) unless $this->MyClass; | 113 $this->MyClass(new IMPL::Config::Class(Type => MyClass)) unless $this->MyClass; |
109 } | 114 } |
115 | |
116 # in some script | |
117 | |
118 my $app = spawn App::Config('default.xml'); | |
119 | |
120 $app->Run(); | |
110 | 121 |
111 =head1 DESCRIPTION | 122 =head1 DESCRIPTION |
112 | 123 |
113 Позволяет сохранить/загрузить конфигурацию. Также все классы конфигурации | 124 Позволяет сохранить/загрузить конфигурацию. Также все классы конфигурации |
114 должны наследоваться от данного класса, и все Public свойства будут | 125 должны наследоваться от данного класса, и все Public свойства будут |