diff --git a/lib/liquid/htmltags.rb b/lib/liquid/htmltags.rb index 05b04190..8ceab444 100644 --- a/lib/liquid/htmltags.rb +++ b/lib/liquid/htmltags.rb @@ -23,7 +23,7 @@ module Liquid from = @attributes['offset'] ? context[@attributes['offset']].to_i : 0 to = @attributes['limit'] ? from + context[@attributes['limit']].to_i : nil - collection = Utils.slice_collection_using_each(collection, from, to) + collection = Utils.slice_collection(collection, from, to) length = collection.length diff --git a/lib/liquid/tags/for.rb b/lib/liquid/tags/for.rb index c8887e97..9955b5e4 100644 --- a/lib/liquid/tags/for.rb +++ b/lib/liquid/tags/for.rb @@ -75,11 +75,7 @@ module Liquid limit = context[@attributes['limit']] to = limit ? limit.to_i + from : nil - segment = if (from != 0 || to != nil) && collection.respond_to?(:load_slice) - collection.load_slice(from, to) - else - Utils.slice_collection_using_each(collection, from, to) - end + segment = Utils.slice_collection(collection, from, to) return render_else(context) if segment.empty? diff --git a/lib/liquid/utils.rb b/lib/liquid/utils.rb index 0bf6df29..fa409e48 100644 --- a/lib/liquid/utils.rb +++ b/lib/liquid/utils.rb @@ -1,5 +1,20 @@ module Liquid module Utils + + def self.slice_collection(collection, from, to) + if (from != 0 || to != nil) && collection.respond_to?(:load_slice) + collection.load_slice(from, to) + else + slice_collection_using_each(collection, from, to) + end + end + + def self.non_blank_string?(collection) + collection.is_a?(String) && collection != '' + end + + private + def self.slice_collection_using_each(collection, from, to) segments = [] index = 0 @@ -22,9 +37,5 @@ module Liquid segments end - - def self.non_blank_string?(collection) - collection.is_a?(String) && collection != '' - end end end