# HG changeset patch # User sergey # Date 1366301165 -14400 # Node ID 47a09a8dc23a4b67636142889c564361557db1a4 # Parent 2da2564f115d0760eff062d3fd8c379ad6d30ed5 sync diff -r 2da2564f115d -r 47a09a8dc23a Lib/IMPL/Web/View/TTDocument.pm --- a/Lib/IMPL/Web/View/TTDocument.pm Thu Apr 18 02:21:28 2013 +0400 +++ b/Lib/IMPL/Web/View/TTDocument.pm Thu Apr 18 20:06:05 2013 +0400 @@ -23,15 +23,13 @@ ], props => [ layout => PROP_RW, - loader => PROP_RW, baseLocation => PROP_RW ] }; sub CTOR { - my ($this,$template,$ctx,$loader,$vars) = @_; + my ($this,$template,$ctx,$vars) = @_; - $this->loader($loader) if $loader; $this->layout( $template->layout ) unless $this->layout; $this->title( $template->title ) unless $this->title; @@ -46,18 +44,15 @@ $this->context->localise(); # localise stash my $documentContext = _clone_context( $this->context ); # create a new context - - my $registry = TTRegistry->new($this->loader, $documentContext); $this->context->stash->update({ - require => sub { $registry->Require(shift) }, document => sub { $this } }); my $text = eval { if ($this->layout) { - my $tlayout = $this->loader->layout($this->layout); + my $tlayout = $this->GetTemplate($this->layout); if(my $init = $tlayout->blocks->{INIT}) { $this->context->process( $init, @@ -86,8 +81,6 @@ my $e = $@; - $registry->Dispose(); - undef $registry; $this->context->delocalise(); undef $this; @@ -105,6 +98,12 @@ $this->template->blocks->{$name}; } +sub DTOR { + my $this = shift; + + $this->registry->Dispose() if $this->registry; +} + sub _clone_context { my $args = { %{shift || {}} }; delete $args->{CONFIG}; diff -r 2da2564f115d -r 47a09a8dc23a Lib/IMPL/Web/View/TTLoader.pm --- a/Lib/IMPL/Web/View/TTLoader.pm Thu Apr 18 02:21:28 2013 +0400 +++ b/Lib/IMPL/Web/View/TTLoader.pm Thu Apr 18 20:06:05 2013 +0400 @@ -8,7 +8,7 @@ require => { Provider => 'Template::Provider', Context => 'Template::Context', - TTDocument => 'IMPL::Web::View::TTDocument', + TTFactory => 'IMPL::Web::View::TTFactory', Exception => 'IMPL::Exception', ArgumentException => '-IMPL::InvalidArgumentException', KeyNotFoundException => '-IMPL::KeyNotFoundException' @@ -71,6 +71,8 @@ sub document { my ($this,$name,$vars) = @_; + $vars ||= $vars; + my $tt = $this->template($name); $this->_init(); @@ -81,9 +83,12 @@ my $ctx = _clone_context($this->context); $this->context->delocalise(); - return TTDocument->new( $tt, $ctx, $this, $vars ); + my $factory = TTFactory->new($tt,$ctx,$name,TTRegistry->new($this, $ctx)); + + return $factory->new( $vars ); } + sub template { my ($this,$name) = @_; diff -r 2da2564f115d -r 47a09a8dc23a _test/dump.out --- a/_test/dump.out Thu Apr 18 02:21:28 2013 +0400 +++ b/_test/dump.out Thu Apr 18 20:06:05 2013 +0400 @@ -37,46 +37,11 @@ }, 'Template::Stash::XS' ) }, 'Template::Stash::XS' ), bless( { - 'require' => sub { "DUMMY" }, - 'date' => $VAR1->[0]{'date'}, - 'inc' => $VAR1->[0]{'inc'}, - 'document' => sub { "DUMMY" }, - 'dec' => $VAR1->[0]{'dec'}, - 'dojoDefaultClass' => 'dijit.form.Input', - 'dojo' => { - 'require' => [ - 'dijit.form.Input' - ] - }, - 'view' => $VAR1->[0]{'view'}, - 'user' => 'test_user', - '_PARENT' => $VAR1->[0], - 'global' => $VAR1->[0]{'global'}, - 'template' => bless( { - '_DEFBLOCKS' => {}, - '_VARIABLES' => {}, - 'modtime' => 1363988810, - 'version' => '1', - 'name' => 'complex.tt', - 'layout' => 'default', - '_BLOCK' => sub { "DUMMY" }, - '_HOT' => 0, - 'title' => 'my document 2' - }, 'Template::Document' ), - 'dynamic' => $VAR1->[0]{'dynamic'}, - '_STRICT' => undef, - 'site' => $VAR1->[0]{'site'}, - 'component' => '', - '_DEBUG' => 0 - }, 'Template::Stash::XS' ), - bless( { 'PREFIX_MAP' => {}, - 'BLOCKS' => { - 'INIT' => sub { "DUMMY" } - }, + 'BLOCKS' => {}, 'TRIM' => 0, 'CONFIG' => { - 'PREFIX_MAP' => $VAR1->[2]{'PREFIX_MAP'}, + 'PREFIX_MAP' => $VAR1->[1]{'PREFIX_MAP'}, 'BLOCKS' => {}, 'TRIM' => 0, 'LOAD_PLUGINS' => [ @@ -124,17 +89,17 @@ '/home/sergey/workspace.web/Impl/_test/Resources/TTView/My/Org/TextPreview.tt', bless( { '_DEFBLOCKS' => { - 'INIT' => $VAR1->[2]{'BLOCKS'}{'INIT'} + 'INIT' => sub { "DUMMY" } }, '_BLOCK' => sub { "DUMMY" }, '_VARIABLES' => {}, - 'modtime' => 1363988727, + 'modtime' => 1364195248, 'name' => 'My/Org/TextPreview.tt', '_HOT' => 0 }, 'Template::Document' ), - 1363988727, + 1364195248, [ - $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}, + $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}, '/home/sergey/workspace.web/Impl/_test/Resources/TTView/My/Org/Panel.tt', bless( { '_DEFBLOCKS' => { @@ -142,14 +107,14 @@ }, '_BLOCK' => sub { "DUMMY" }, '_VARIABLES' => {}, - 'modtime' => 1363988821, + 'modtime' => 1364195248, 'version' => '1', 'name' => 'My/Org/Panel.tt', '_HOT' => 0 }, 'Template::Document' ), - 1363988821, + 1364195248, [ - $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4], + $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4], '/home/sergey/workspace.web/Impl/_test/Resources/TTView/Layout/default.tt', bless( { '_DEFBLOCKS' => { @@ -157,18 +122,28 @@ }, '_BLOCK' => sub { "DUMMY" }, '_VARIABLES' => {}, - 'modtime' => 1361220618, + 'modtime' => 1361182966, 'name' => 'Layout/default.tt', '_HOT' => 0 }, 'Template::Document' ), - 1361220618, + 1361182966, [ - $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4], + $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4], '/home/sergey/workspace.web/Impl/_test/Resources/TTView/complex.tt', - $VAR1->[1]{'template'}, - 1363988810, + bless( { + '_DEFBLOCKS' => {}, + '_VARIABLES' => {}, + 'modtime' => 1364195248, + 'version' => '1', + 'name' => 'complex.tt', + 'layout' => 'default', + '_BLOCK' => sub { "DUMMY" }, + '_HOT' => 0, + 'title' => 'my document 2' + }, 'Template::Document' ), + 1364195248, [ - $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4], + $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4], '/home/sergey/workspace.web/Impl/_test/Resources/TTView/simple.tt', bless( { '_DEFBLOCKS' => { @@ -184,7 +159,7 @@ }, 'Template::Document' ), 1343890751, [ - $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4], + $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4], '/home/sergey/workspace.web/Impl/_test/Resources/TTView/global.tt', bless( { '_DEFBLOCKS' => {}, @@ -197,17 +172,17 @@ }, 'Template::Document' ), 1343890751, undef, - 1366221306 + 1366207151 ], - 1366221306 + 1366207151 ], - 1366221306 + 1366207151 ], - 1366221306 + 1366207151 ], - 1366221306 + 1366207151 ], - 1366221306 + 1366207151 ], 'DELIMITER' => ':', 'UNICODE' => 1, @@ -223,12 +198,12 @@ 'STAT_TTL' => 1, 'ABSOLUTE' => 0, 'LOOKUP' => { - '/home/sergey/workspace.web/Impl/_test/Resources/TTView/global.tt' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4][4], - '/home/sergey/workspace.web/Impl/_test/Resources/TTView/My/Org/Panel.tt' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4], - '/home/sergey/workspace.web/Impl/_test/Resources/TTView/simple.tt' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4], - '/home/sergey/workspace.web/Impl/_test/Resources/TTView/My/Org/TextPreview.tt' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}, - '/home/sergey/workspace.web/Impl/_test/Resources/TTView/Layout/default.tt' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4], - '/home/sergey/workspace.web/Impl/_test/Resources/TTView/complex.tt' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4] + '/home/sergey/workspace.web/Impl/_test/Resources/TTView/global.tt' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4][4], + '/home/sergey/workspace.web/Impl/_test/Resources/TTView/My/Org/Panel.tt' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4], + '/home/sergey/workspace.web/Impl/_test/Resources/TTView/simple.tt' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4], + '/home/sergey/workspace.web/Impl/_test/Resources/TTView/My/Org/TextPreview.tt' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}, + '/home/sergey/workspace.web/Impl/_test/Resources/TTView/Layout/default.tt' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4], + '/home/sergey/workspace.web/Impl/_test/Resources/TTView/complex.tt' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4] }, 'DEFAULT' => undef, 'PARSER' => bless( { @@ -5397,7 +5372,7 @@ 'DEBUG_DIRS' => 0, 'PRE_CHOMP' => 0, 'GRAMMAR' => bless( { - 'STATES' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'PARSER'}{'STATES'}, + 'STATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'PARSER'}{'STATES'}, 'RULES' => [ [ '$start', @@ -6300,12 +6275,12 @@ sub { "DUMMY" } ] ], - 'LEXTABLE' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'PARSER'}{'LEXTABLE'} + 'LEXTABLE' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'PARSER'}{'LEXTABLE'} }, 'Template::Grammar' ), - 'RULES' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'PARSER'}{'GRAMMAR'}{'RULES'}, + 'RULES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'PARSER'}{'GRAMMAR'}{'RULES'}, 'FILE_INFO' => 1, 'TRACE_VARS' => undef, - 'DEFBLOCK' => $VAR1->[1]{'template'}{'_DEFBLOCKS'}, + 'DEFBLOCK' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][2]{'_DEFBLOCKS'}, 'METADATA' => [ 'version', '1', @@ -6329,23 +6304,23 @@ 'START_TAG' => '\\[%' } ], - 'VARIABLES' => $VAR1->[1]{'template'}{'_VARIABLES'}, + 'VARIABLES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][2]{'_VARIABLES'}, 'START_TAG' => undef }, 'Template::Parser' ), - 'TAIL' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4][4], + 'TAIL' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4][4], 'ENCODING' => 'utf-8', 'SLOTS' => 6, 'PARAMS' => { 'ENCODING' => 'utf-8', 'INTERPOLATE' => 1, 'POST_CHOMP' => 1, - 'INCLUDE_PATH' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'INCLUDE_PATH'} + 'INCLUDE_PATH' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'INCLUDE_PATH'} }, 'COMPILE_EXT' => '' }, 'Template::Provider' ) ], 'BLKSTACK' => [], - 'STASH' => $VAR1->[1], + 'STASH' => $VAR1->[0], '_ERROR' => '', 'DEBUG_FORMAT' => undef, 'DEBUG' => 0, @@ -6353,7 +6328,7 @@ 'EXPOSE_BLOCKS' => 0, 'DEBUG_DIRS' => 0, 'RECURSION' => 0, - 'INIT_BLOCKS' => $VAR1->[2]{'CONFIG'}{'BLOCKS'}, + 'INIT_BLOCKS' => $VAR1->[1]{'CONFIG'}{'BLOCKS'}, 'LOAD_FILTERS' => [ bless( { 'DEBUG' => 0, @@ -6363,10 +6338,10 @@ }, 'Template::Filters' ) ] }, - 'LOAD_PLUGINS' => $VAR1->[2]{'CONFIG'}{'LOAD_PLUGINS'}, - 'LOAD_TEMPLATES' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}, + 'LOAD_PLUGINS' => $VAR1->[1]{'CONFIG'}{'LOAD_PLUGINS'}, + 'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}, 'BLKSTACK' => [], - 'STASH' => $VAR1->[1], + 'STASH' => $VAR1->[0], 'DEBUG_FORMAT' => undef, '_ERROR' => '', 'DEBUG' => 0, @@ -6374,26 +6349,25 @@ 'EXPOSE_BLOCKS' => 0, 'DEBUG_DIRS' => 0, 'RECURSION' => 0, - 'INIT_BLOCKS' => $VAR1->[2]{'BLOCKS'}, - 'LOAD_FILTERS' => $VAR1->[2]{'CONFIG'}{'LOAD_FILTERS'} + 'INIT_BLOCKS' => $VAR1->[1]{'BLOCKS'}, + 'LOAD_FILTERS' => $VAR1->[1]{'CONFIG'}{'LOAD_FILTERS'} }, 'Template::Context' ), bless( { - 'IMPL_Web_View_TTRegistry_context' => $VAR1->[2], - 'IMPL_Web_View_TTRegistry_loader' => bless( { + 'IMPL_Web_View_TTDocument_loader' => bless( { 'IMPL_Web_View_TTLoader_context' => bless( { - 'PREFIX_MAP' => $VAR1->[2]{'PREFIX_MAP'}, - 'BLOCKS' => {}, + 'PREFIX_MAP' => $VAR1->[1]{'PREFIX_MAP'}, + 'BLOCKS' => $VAR1->[1]{'CONFIG'}{'BLOCKS'}, 'TRIM' => 0, 'CONFIG' => { 'ENCODING' => 'utf-8', 'POST_CHOMP' => 1, 'INTERPOLATE' => 1, - 'LOAD_TEMPLATES' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0], - 'INCLUDE_PATH' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'INCLUDE_PATH'} + 'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0], + 'INCLUDE_PATH' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'INCLUDE_PATH'} }, - 'LOAD_PLUGINS' => $VAR1->[2]{'CONFIG'}{'LOAD_PLUGINS'}, - 'LOAD_TEMPLATES' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}, - 'BLKSTACK' => [], + 'LOAD_PLUGINS' => $VAR1->[1]{'CONFIG'}{'LOAD_PLUGINS'}, + 'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}, + 'BLKSTACK' => $VAR1->[1]{'CONFIG'}{'BLKSTACK'}, 'STASH' => $VAR1->[0]{'_PARENT'}, 'DEBUG_FORMAT' => undef, '_ERROR' => '', @@ -6402,12 +6376,12 @@ 'EXPOSE_BLOCKS' => 0, 'DEBUG_DIRS' => 0, 'RECURSION' => 0, - 'INIT_BLOCKS' => $VAR1->[3]{'IMPL_Web_View_TTRegistry_loader'}{'IMPL_Web_View_TTLoader_context'}{'BLOCKS'}, - 'LOAD_FILTERS' => $VAR1->[2]{'CONFIG'}{'LOAD_FILTERS'} + 'INIT_BLOCKS' => $VAR1->[1]{'CONFIG'}{'BLOCKS'}, + 'LOAD_FILTERS' => $VAR1->[1]{'CONFIG'}{'LOAD_FILTERS'} }, 'Template::Context' ), 'IMPL_Web_View_TTLoader_layoutBase' => 'Layout', 'IMPL_Web_View_TTLoader_initializer' => 'global.tt', - 'IMPL_Web_View_TTLoader_provider' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0], + 'IMPL_Web_View_TTLoader_provider' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0], 'IMPL_Web_View_TTLoader_ext' => '.tt', 'IMPL_Web_View_TTLoader__globals' => { 'site' => $VAR1->[0]{'site'}, @@ -6415,31 +6389,164 @@ 'date' => $VAR1->[0]{'date'}, 'dynamic' => $VAR1->[0]{'dynamic'} }, - 'IMPL_Web_View_TTLoader_options' => $VAR1->[3]{'IMPL_Web_View_TTRegistry_loader'}{'IMPL_Web_View_TTLoader_context'}{'CONFIG'}, + 'IMPL_Web_View_TTLoader_options' => $VAR1->[2]{'IMPL_Web_View_TTDocument_loader'}{'IMPL_Web_View_TTLoader_context'}{'CONFIG'}, 'IMPL_Web_View_TTLoader_isInitialized' => 1 }, 'IMPL::Web::View::TTLoader' ), - 'IMPL_Web_View_TTRegistry__cache' => { - 'My/Org/TextPreview' => bless( { - 'IMPL_Web_View_TTFactory_registry' => $VAR1->[3], - 'IMPL_Web_View_TTFactory_blocks' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[2]{'_DEFBLOCKS'}, - 'IMPL_Web_View_TTFactory_instances' => 0, - 'IMPL_Object_Factory_factory' => 'IMPL::Web::View::TTControl', - 'IMPL_Web_View_TTFactory_baseLocation' => 'My/Org', - 'IMPL_Web_View_TTFactory_context' => $VAR1->[2], - 'IMPL_Web_View_TTFactory_template' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[2] - }, 'IMPL::Web::View::TTFactory' ), - 'My/Org/Panel' => bless( { - 'IMPL_Web_View_TTFactory_initialized' => 1, - 'IMPL_Web_View_TTFactory_registry' => $VAR1->[3], - 'IMPL_Web_View_TTFactory_instances' => 1, - 'IMPL_Object_Factory_factory' => 'IMPL::Web::View::TTControl', - 'IMPL_Web_View_TTFactory_baseLocation' => 'My/Org', - 'IMPL_Web_View_TTFactory_context' => $VAR1->[2], - 'IMPL_Web_View_TTFactory_blocks' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][2]{'_DEFBLOCKS'}, - 'IMPL_Web_View_TTFactory_template' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][2] - }, 'IMPL::Web::View::TTFactory' ) - } - }, 'IMPL::Web::View::TTRegistry' ), - $VAR1->[3]{'IMPL_Web_View_TTRegistry__cache'}{'My/Org/Panel'}, - $VAR1->[3]{'IMPL_Web_View_TTRegistry__cache'}{'My/Org/TextPreview'} + 'IMPL_Web_View_TTControl_id' => '_14', + 'IMPL_Web_View_TTControl_template' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][2], + 'IMPL_Web_View_TTControl_context' => $VAR1->[1], + 'IMPL_Web_View_TTDocument_layout' => 'default', + 'IMPL_Web_View_TTControl_attributes' => { + 'childNodes' => [ + bless( { + 'IMPL_Web_View_TTControl_id' => '_15', + 'IMPL_Web_View_TTControl_template' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][2], + 'IMPL_Web_View_TTControl_context' => bless( { + 'PREFIX_MAP' => $VAR1->[1]{'PREFIX_MAP'}, + 'BLOCKS' => { + 'INIT' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][2]{'_DEFBLOCKS'}{'INIT'} + }, + 'TRIM' => 0, + 'CONFIG' => { + 'PREFIX_MAP' => $VAR1->[1]{'PREFIX_MAP'}, + 'BLOCKS' => { + 'INIT' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[2]{'_DEFBLOCKS'}{'INIT'} + }, + 'TRIM' => 0, + 'LOAD_PLUGINS' => $VAR1->[1]{'CONFIG'}{'LOAD_PLUGINS'}, + 'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}, + 'BLKSTACK' => [], + 'STASH' => bless( { + 'require' => sub { "DUMMY" }, + 'inc' => $VAR1->[0]{'inc'}, + 'date' => $VAR1->[0]{'date'}, + 'document' => $VAR1->[2], + 'dec' => $VAR1->[0]{'dec'}, + 'dojoDefaultClass' => 'dijit.form.Input', + 'dojo' => { + 'require' => [ + 'dijit.form.Input' + ] + }, + 'view' => $VAR1->[0]{'view'}, + 'user' => 'test_user', + '_PARENT' => bless( { + 'require' => sub { "DUMMY" }, + 'date' => $VAR1->[0]{'date'}, + 'inc' => $VAR1->[0]{'inc'}, + 'document' => $VAR1->[2], + 'dec' => $VAR1->[0]{'dec'}, + 'dojoDefaultClass' => 'dijit.form.Input', + 'dojo' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'STASH'}{'dojo'}, + 'view' => $VAR1->[0]{'view'}, + 'user' => 'test_user', + '_PARENT' => $VAR1->[0], + 'global' => $VAR1->[0]{'global'}, + 'template' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][2], + 'dynamic' => $VAR1->[0]{'dynamic'}, + '_STRICT' => undef, + 'site' => $VAR1->[0]{'site'}, + 'component' => '', + '_DEBUG' => 0 + }, 'Template::Stash::XS' ), + 'global' => $VAR1->[0]{'global'}, + 'template' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][2], + 'dynamic' => $VAR1->[0]{'dynamic'}, + '_STRICT' => undef, + 'site' => $VAR1->[0]{'site'}, + 'component' => '', + '_DEBUG' => 0 + }, 'Template::Stash::XS' ), + '_ERROR' => '', + 'DEBUG_FORMAT' => undef, + 'DEBUG' => 0, + 'EVAL_PERL' => 0, + 'EXPOSE_BLOCKS' => 0, + 'DEBUG_DIRS' => 0, + 'RECURSION' => 0, + 'INIT_BLOCKS' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'BLOCKS'}, + 'LOAD_FILTERS' => $VAR1->[1]{'CONFIG'}{'LOAD_FILTERS'} + }, + 'LOAD_PLUGINS' => $VAR1->[1]{'CONFIG'}{'LOAD_PLUGINS'}, + 'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}, + 'BLKSTACK' => [], + 'STASH' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'STASH'}, + 'DEBUG_FORMAT' => undef, + '_ERROR' => '', + 'DEBUG' => 0, + 'EVAL_PERL' => 0, + 'EXPOSE_BLOCKS' => 0, + 'DEBUG_DIRS' => 0, + 'RECURSION' => 0, + 'INIT_BLOCKS' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'BLOCKS'}, + 'LOAD_FILTERS' => $VAR1->[1]{'CONFIG'}{'LOAD_FILTERS'} + }, 'Template::Context' ), + 'IMPL_Web_View_TTControl_attributes' => { + 'factory' => bless( { + 'IMPL_Web_View_TTFactory_initialized' => 1, + 'IMPL_Web_View_TTFactory_registry' => bless( { + 'IMPL_Web_View_TTRegistry_context' => undef, + 'IMPL_Web_View_TTRegistry_loader' => undef, + 'IMPL_Web_View_TTRegistry__cache' => undef + }, 'IMPL::Object::Disposed' ), + 'IMPL_Web_View_TTFactory_instances' => 1, + 'IMPL_Object_Factory_factory' => 'IMPL::Web::View::TTControl', + 'IMPL_Web_View_TTFactory_baseLocation' => 'My/Org', + 'IMPL_Web_View_TTFactory_context' => bless( { + 'PREFIX_MAP' => $VAR1->[1]{'PREFIX_MAP'}, + 'BLOCKS' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'BLOCKS'}, + 'TRIM' => 0, + 'CONFIG' => { + 'PREFIX_MAP' => $VAR1->[1]{'PREFIX_MAP'}, + 'BLOCKS' => $VAR1->[1]{'BLOCKS'}, + 'TRIM' => 0, + 'LOAD_PLUGINS' => $VAR1->[1]{'CONFIG'}{'LOAD_PLUGINS'}, + 'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}, + 'BLKSTACK' => $VAR1->[1]{'BLKSTACK'}, + 'STASH' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'STASH'}{'_PARENT'}, + '_ERROR' => '', + 'DEBUG_FORMAT' => undef, + 'DEBUG' => 0, + 'EVAL_PERL' => 0, + 'EXPOSE_BLOCKS' => 0, + 'DEBUG_DIRS' => 0, + 'RECURSION' => 0, + 'INIT_BLOCKS' => $VAR1->[1]{'BLOCKS'}, + 'LOAD_FILTERS' => $VAR1->[1]{'CONFIG'}{'LOAD_FILTERS'} + }, + 'LOAD_PLUGINS' => $VAR1->[1]{'CONFIG'}{'LOAD_PLUGINS'}, + 'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}, + 'BLKSTACK' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'BLKSTACK'}, + 'STASH' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'STASH'}{'_PARENT'}, + 'DEBUG_FORMAT' => undef, + '_ERROR' => '', + 'DEBUG' => 0, + 'EVAL_PERL' => 0, + 'EXPOSE_BLOCKS' => 0, + 'DEBUG_DIRS' => 0, + 'RECURSION' => 0, + 'INIT_BLOCKS' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'BLOCKS'}, + 'LOAD_FILTERS' => $VAR1->[1]{'CONFIG'}{'LOAD_FILTERS'} + }, 'Template::Context' ), + 'IMPL_Web_View_TTFactory_blocks' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][2]{'_DEFBLOCKS'}, + 'IMPL_Web_View_TTFactory_template' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][2] + }, 'IMPL::Web::View::TTFactory' ), + 'dojoClass' => 'dijit.form.Input', + 'childNodes' => [], + 'visualClass' => 'classic', + 'data' => '' + } + }, 'IMPL::Web::View::TTControl' ) + ], + 'title' => 'my document 2' + } + }, 'IMPL::Web::View::TTDocument' ), + $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'STASH'}{'_PARENT'}, + $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_attributes'}{'factory'}{'IMPL_Web_View_TTFactory_context'}, + $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_attributes'}{'factory'}{'IMPL_Web_View_TTFactory_registry'}, + $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_attributes'}{'factory'}, + $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'STASH'}, + $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}, + $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0], + $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_attributes'}{'factory'}{'IMPL_Web_View_TTFactory_registry'} ];