Mercurial > pub > Impl
comparison Lib/IMPL/Web/View/TTLoader.pm @ 308:47a09a8dc23a
sync
| author | sergey |
|---|---|
| date | Thu, 18 Apr 2013 20:06:05 +0400 |
| parents | 85572f512abc |
| children | 5e4e7c8fbca1 |
comparison
equal
deleted
inserted
replaced
| 307:2da2564f115d | 308:47a09a8dc23a |
|---|---|
| 6 use IMPL::Const qw(:prop); | 6 use IMPL::Const qw(:prop); |
| 7 use IMPL::declare { | 7 use IMPL::declare { |
| 8 require => { | 8 require => { |
| 9 Provider => 'Template::Provider', | 9 Provider => 'Template::Provider', |
| 10 Context => 'Template::Context', | 10 Context => 'Template::Context', |
| 11 TTDocument => 'IMPL::Web::View::TTDocument', | 11 TTFactory => 'IMPL::Web::View::TTFactory', |
| 12 Exception => 'IMPL::Exception', | 12 Exception => 'IMPL::Exception', |
| 13 ArgumentException => '-IMPL::InvalidArgumentException', | 13 ArgumentException => '-IMPL::InvalidArgumentException', |
| 14 KeyNotFoundException => '-IMPL::KeyNotFoundException' | 14 KeyNotFoundException => '-IMPL::KeyNotFoundException' |
| 15 }, | 15 }, |
| 16 base => [ | 16 base => [ |
| 69 } | 69 } |
| 70 | 70 |
| 71 sub document { | 71 sub document { |
| 72 my ($this,$name,$vars) = @_; | 72 my ($this,$name,$vars) = @_; |
| 73 | 73 |
| 74 $vars ||= $vars; | |
| 75 | |
| 74 my $tt = $this->template($name); | 76 my $tt = $this->template($name); |
| 75 | 77 |
| 76 $this->_init(); | 78 $this->_init(); |
| 77 | 79 |
| 78 my $opts = { %{ $this->options } }; | 80 my $opts = { %{ $this->options } }; |
| 79 | 81 |
| 80 $this->context->localise(); | 82 $this->context->localise(); |
| 81 my $ctx = _clone_context($this->context); | 83 my $ctx = _clone_context($this->context); |
| 82 $this->context->delocalise(); | 84 $this->context->delocalise(); |
| 83 | 85 |
| 84 return TTDocument->new( $tt, $ctx, $this, $vars ); | 86 my $factory = TTFactory->new($tt,$ctx,$name,TTRegistry->new($this, $ctx)); |
| 85 } | 87 |
| 88 return $factory->new( $vars ); | |
| 89 } | |
| 90 | |
| 86 | 91 |
| 87 sub template { | 92 sub template { |
| 88 my ($this,$name) = @_; | 93 my ($this,$name) = @_; |
| 89 | 94 |
| 90 $name =~ s/^\s+|\s+$//g; | 95 $name =~ s/^\s+|\s+$//g; |
