render_all should internally always return strings. This eases some 1.9 compatability issues.

This commit is contained in:
Steven Soroka
2011-05-02 10:58:27 -04:00
parent 888cbe8f09
commit 1a4ff9547a
10 changed files with 28 additions and 34 deletions
+1 -1
View File
@@ -95,7 +95,7 @@ module Liquid
rescue ::StandardError => e rescue ::StandardError => e
context.handle_error(e) context.handle_error(e)
end end
end end.join
end end
end end
end end
+5 -4
View File
@@ -33,7 +33,7 @@ module Liquid
row = 1 row = 1
col = 0 col = 0
result = ["<tr class=\"row1\">\n"] result = "<tr class=\"row1\">\n"
context.stack do context.stack do
collection.each_with_index do |item, index| collection.each_with_index do |item, index|
@@ -56,17 +56,18 @@ module Liquid
col += 1 col += 1
result << ["<td class=\"col#{col}\">"] + render_all(@nodelist, context) + ['</td>'] result << "<td class=\"col#{col}\">" << render_all(@nodelist, context) << '</td>'
if col == cols and not (index == length - 1) if col == cols and not (index == length - 1)
col = 0 col = 0
row += 1 row += 1
result << ["</tr>\n<tr class=\"row#{row}\">"] result << "</tr>\n<tr class=\"row#{row}\">"
end end
end end
end end
result + ["</tr>\n"] result << "</tr>\n"
result
end end
end end
+1 -1
View File
@@ -26,7 +26,7 @@ module Liquid
def render(context) def render(context)
output = super output = super
context.scopes.last[@to] = output.join context.scopes.last[@to] = output
'' ''
end end
end end
+4 -8
View File
@@ -31,22 +31,18 @@ module Liquid
context.stack do context.stack do
execute_else_block = true execute_else_block = true
@blocks.inject([]) do |output, block| output = ''
@blocks.each do |block|
if block.else? if block.else?
return render_all(block.attachment, context) if execute_else_block return render_all(block.attachment, context) if execute_else_block
elsif block.evaluate(context) elsif block.evaluate(context)
execute_else_block = false execute_else_block = false
output += render_all(block.attachment, context) output << render_all(block.attachment, context)
end
end end
output output
end end
end end
end
private private
+1 -1
View File
@@ -85,7 +85,7 @@ module Liquid
segment.reverse! if @reversed segment.reverse! if @reversed
result = [] result = ''
length = segment.length length = segment.length
-4
View File
@@ -34,17 +34,13 @@ module Liquid
end end
if variable.is_a?(Array) if variable.is_a?(Array)
variable.collect do |variable| variable.collect do |variable|
context[@template_name[1..-2]] = variable context[@template_name[1..-2]] = variable
partial.render(context) partial.render(context)
end end
else else
context[@template_name[1..-2]] = variable context[@template_name[1..-2]] = variable
partial.render(context) partial.render(context)
end end
end end
end end
+2 -1
View File
@@ -121,7 +121,8 @@ module Liquid
begin begin
# render the nodelist. # render the nodelist.
# for performance reasons we get a array back here. join will make a string out of it # for performance reasons we get a array back here. join will make a string out of it
@root.render(context).join result = @root.render(context)
result.respond_to?(:join) ? result.join : result
ensure ensure
@errors = context.errors @errors = context.errors
end end