From c1eb694057d17538ee88943e4b9f11527d7b03d0 Mon Sep 17 00:00:00 2001 From: Dylan Thacker-Smith Date: Thu, 28 May 2015 16:04:23 -0400 Subject: [PATCH] Remove the redundant iterable check in the for tag. Just do it in slice_collection for consistency with the tablerow tag. --- lib/liquid/tags/for.rb | 7 ------- lib/liquid/utils.rb | 5 +---- 2 files changed, 1 insertion(+), 11 deletions(-) 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