diff --git a/lib/liquid/tags/for.rb b/lib/liquid/tags/for.rb index cd0b7649..76aaa6f3 100644 --- a/lib/liquid/tags/for.rb +++ b/lib/liquid/tags/for.rb @@ -76,9 +76,6 @@ module Liquid collection = context.evaluate(@collection_name) collection = collection.to_a if collection.is_a?(Range) - # Maintains Ruby 1.8.7 String#each behaviour on 1.9 - return render_else(context) unless iterable?(collection) - from = if @from == :continue for_offsets[@name].to_i else @@ -189,10 +186,6 @@ module Liquid def render_else(context) @else_block ? @else_block.render(context) : ''.freeze end - - def iterable?(collection) - collection.respond_to?(:each) || Utils.non_blank_string?(collection) - end end Template.register_tag('for'.freeze, For) diff --git a/lib/liquid/utils.rb b/lib/liquid/utils.rb index 09e0a178..ba8a2cac 100644 --- a/lib/liquid/utils.rb +++ b/lib/liquid/utils.rb @@ -8,10 +8,6 @@ module Liquid end end - def self.non_blank_string?(collection) - collection.is_a?(String) && collection != ''.freeze - end - def self.slice_collection_using_each(collection, from, to) segments = [] index = 0 @@ -20,6 +16,7 @@ module Liquid if collection.is_a?(String) return collection.empty? ? [] : [collection] end + return [] unless collection.respond_to?(:each) collection.each do |item| if to && to <= index