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