Mercurial > pub > Impl
comparison Lib/IMPL/Web/View/TTDocument.pm @ 188:029c9610528c
Memory leak tests in IMPL::Web::View
| author | cin |
|---|---|
| date | Tue, 03 Apr 2012 20:08:42 +0400 |
| parents | 927653d01f4f |
| children | 08015e2803f1 |
comparison
equal
deleted
inserted
replaced
| 187:927653d01f4f | 188:029c9610528c |
|---|---|
| 45 my ($this, $control) = @_; | 45 my ($this, $control) = @_; |
| 46 | 46 |
| 47 if (my $factory = $this->controls->{$control}) { | 47 if (my $factory = $this->controls->{$control}) { |
| 48 return $factory; | 48 return $factory; |
| 49 } else { | 49 } else { |
| 50 | 50 =pod |
| 51 my $path = $control; | 51 my $path = $control; |
| 52 if ( my $template = $this->loader->template($path) ) { | 52 if ( my $template = $this->loader->template($path) ) { |
| 53 my $opts = { %{$this->opts} }; | 53 #my $opts = { %{$this->opts} }; |
| 54 $opts->{STASH} = $this->context->stash->clone(); | 54 #$opts->{STASH} = $this->context->stash->clone(); |
| 55 | 55 |
| 56 my $ctx = new Template::Context($opts); | 56 my $ctx = new Template::Context();#$opts); |
| 57 | 57 |
| 58 $factory = new IMPL::Web::View::TTFactory( | 58 $factory = new IMPL::Web::View::TTFactory( |
| 59 typeof IMPL::Web::View::TTControl, | 59 typeof IMPL::Web::View::TTControl, |
| 60 $template, | 60 $template, |
| 61 $ctx, | 61 $ctx, |
| 62 $opts | 62 {} #$opts |
| 63 ); | 63 ); |
| 64 | 64 |
| 65 my @parts = split(/\/+/,$control); | 65 my @parts = split(/\/+/,$control); |
| 66 | 66 |
| 67 $this->controls->{$control} = $factory; | 67 $this->controls->{$control} = $factory; |
| 68 $this->context->stash->set([map { $_, 0 } @parts], $factory); | 68 $this->context->stash->set([map { $_, 0 } @parts], $factory); |
| 69 | 69 |
| 70 return $factory; | 70 return $factory; |
| 71 | |
| 71 } else { | 72 } else { |
| 72 die new IMPL::KeyNotFoundException($control); | 73 die new IMPL::KeyNotFoundException($control); |
| 73 } | 74 } |
| 74 | 75 =cut |
| 75 } | 76 } |
| 76 } | 77 } |
| 77 | 78 |
| 78 sub renderBlock { | 79 sub renderBlock { |
| 79 $_[0]->template; | 80 $_[0]->template; |
| 80 } | 81 } |
| 81 | 82 |
| 82 sub Render { | 83 sub Render { |
| 83 my ($this,$args) = @_; | 84 my ($this,$args) = @_; |
| 84 | 85 |
| 85 my $output = $this->IMPL::Web::TTControl::Render( { document => $this } ); | 86 my $output = $this->SUPER::Render( { document => $this } ); |
| 86 | 87 |
| 87 if ($this->layout) { | 88 if ($this->layout) { |
| 88 $output = $this->context->include($this->layout, { content => $output } ); | 89 $output = $this->context->include($this->layout, { content => $output } ); |
| 89 } | 90 } |
| 90 | 91 |
