84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
# File 'lib/tags/layout.rb', line 84
def render_to_output_buffer(context, output)
layout_name = context.evaluate(@layout_name_expr)
raise LayoutError, 'Bad layout name argument' unless layout_name
layout = load_layout(layout_name)
old_template_name = context.template_name
old_partial = context.partial
begin
context.template_name = layout_name
context.partial = true
context.stack do
@attributes.each do |key, value|
context[key] = context.evaluate(value)
end
rendered_page = Liquid::Template.parse(@page_content.join)
.render(context)
context['page_content'] = rendered_page
layout.render_to_output_buffer(context,
output)
end
ensure
context.template_name = old_template_name
context.partial = old_partial
end
output
end
|