Sha256: 052d6670db7f956da9cb56a57b3e8a1baa03cc8d9039363838a685ec13b67e9b

Contents?: true

Size: 578 Bytes

Versions: 10

Compression:

Stored size: 578 Bytes

Contents

require 'arc-furnace/source'

module ArcFurnace
  class EnumeratorSource < Source

    private_attr_reader :enumerator
    attr_reader :value

    def initialize
      @enumerator = build_enumerator
      advance
    end

    # Is this source empty?
    def empty?
      !value
    end

    def advance
      @value =
        begin
          enumerator.next if enumerator
        rescue StopIteration
          @enumerator = nil
          nil
        end
    end

    protected

    # Return the enumerator
    def build_enumerator
      raise "Unimplemented"
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
arc-furnace-0.1.12 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.11 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.10 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.9 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.8 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.7 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.6 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.5 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.4 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.3 lib/arc-furnace/enumerator_source.rb