Mercurial > pub > Impl
comparison Lib/IMPL/Config/Activator.pm @ 194:4d0e1962161c
Replaced tabs with spaces
IMPL::Web::View - fixed document model, new features (control classes, document constructor parameters)
| author | cin |
|---|---|
| date | Tue, 10 Apr 2012 20:08:29 +0400 |
| parents | d1676be8afcc |
| children | c8fe3f84feba |
comparison
equal
deleted
inserted
replaced
| 193:8e8401c0aea4 | 194:4d0e1962161c |
|---|---|
| 3 | 3 |
| 4 use parent qw(IMPL::Object IMPL::Object::Autofill IMPL::Object::PublicSerializable); | 4 use parent qw(IMPL::Object IMPL::Object::Autofill IMPL::Object::PublicSerializable); |
| 5 use IMPL::Class::Property; | 5 use IMPL::Class::Property; |
| 6 | 6 |
| 7 BEGIN { | 7 BEGIN { |
| 8 public property factory => prop_all; | 8 public property factory => prop_all; |
| 9 public property parameters => prop_all; | 9 public property parameters => prop_all; |
| 10 public property object => prop_get | owner_set; | 10 public property object => prop_get | owner_set; |
| 11 } | 11 } |
| 12 | 12 |
| 13 __PACKAGE__->PassThroughArgs; | 13 __PACKAGE__->PassThroughArgs; |
| 14 | 14 |
| 15 sub CTOR { | 15 sub CTOR { |
| 30 unless ($this->object) { | 30 unless ($this->object) { |
| 31 my @args; | 31 my @args; |
| 32 | 32 |
| 33 my $params = $this->parameters; | 33 my $params = $this->parameters; |
| 34 if (UNIVERSAL::isa($params,'HASH')) { | 34 if (UNIVERSAL::isa($params,'HASH')) { |
| 35 while ( my ($key,$value) = each %$params ) { | 35 while ( my ($key,$value) = each %$params ) { |
| 36 push @args,$key, UNIVERSAL::isa($value,'IMPL::Config::Activator') ? $value->activate : $value; | 36 push @args,$key, UNIVERSAL::isa($value,'IMPL::Config::Activator') ? $value->activate : $value; |
| 37 } | 37 } |
| 38 } elsif (UNIVERSAL::isa($params,'ARRAY')) { | 38 } elsif (UNIVERSAL::isa($params,'ARRAY')) { |
| 39 push @args, map UNIVERSAL::isa($_,'IMPL::Config::Activator') ? $_->activate : $_, @$params; | 39 push @args, map UNIVERSAL::isa($_,'IMPL::Config::Activator') ? $_->activate : $_, @$params; |
| 40 } else { | 40 } else { |
| 41 push @args, UNIVERSAL::isa($params,'IMPL::Config::Activator') ? $params->activate : $params; | 41 push @args, UNIVERSAL::isa($params,'IMPL::Config::Activator') ? $params->activate : $params; |
| 42 } | 42 } |
| 43 | 43 |
| 44 push @args, map UNIVERSAL::isa($_,'IMPL::Config::Activator') ? $_->activate : $_, @_ if @_; | 44 push @args, map UNIVERSAL::isa($_,'IMPL::Config::Activator') ? $_->activate : $_, @_ if @_; |
| 45 | 45 |
| 46 my $factory = $this->factory; | 46 my $factory = $this->factory; |
| 47 eval "require $factory; 1;" unless (ref $factory or _is_class($factory)); | 47 eval "require $factory; 1;" unless (ref $factory or _is_class($factory)); |
| 48 | 48 |
| 49 return $this->object($factory->new(@args)); | 49 return $this->object($factory->new(@args)); |
| 50 } else { | 50 } else { |
| 51 return $this->object; | 51 return $this->object; |
| 52 } | 52 } |
| 53 } | 53 } |
| 54 | 54 |
| 55 1; | 55 1; |
