class LiquidStream::Streams

Public Class Methods

new(source=nil, stream_context={}) click to toggle source
# File lib/liquid_stream/streams.rb, line 8
def initialize(source=nil, stream_context={})
  @source = source_from(source)
  @stream_context = stream_context
end

Public Instance Methods

each(&block) click to toggle source
# File lib/liquid_stream/streams.rb, line 27
def each(&block)
  to_a.each(&block)
end
first() click to toggle source
# File lib/liquid_stream/streams.rb, line 13
def first
  @first ||= singleton_class.new(@source.first)
end
last() click to toggle source
# File lib/liquid_stream/streams.rb, line 17
def last
  @last ||= singleton_class.new(@source.last)
end
to_a() click to toggle source
# File lib/liquid_stream/streams.rb, line 21
def to_a
  @source.map do |object|
    singleton_class.new(object)
  end
end

Private Instance Methods

singleton_class() click to toggle source
# File lib/liquid_stream/streams.rb, line 33
def singleton_class
  @singleton_class ||= Utils.
    stream_class_from(@stream_context[:method] || self.class)
end
source_from(s) click to toggle source
# File lib/liquid_stream/streams.rb, line 38
def source_from(s)
  src = s
  src ||= if self.class.default_source.respond_to?(:call)
            self.class.default_source.call
          else
            self.class.default_source
          end
  src ||= []
  src
end