Sha256: 39a54c89f81fc6f50d245dd2f416cabd809d4152a4f2e92aa162e4c41822b6fe

Contents?: true

Size: 760 Bytes

Versions: 29

Compression:

Stored size: 760 Bytes

Contents

require 'arc-furnace/source'

module ArcFurnace
  class EnumeratorSource < Source

    private_attr_reader :enumerator
    attr_reader :value

    def initialize
      @enumerator = build_enumerator
      preprocess
      advance
    end

    # Called after setting up the enumerator but before advancing it
    # Use this to extract header rows for instance.
    def preprocess
      # nothing
    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

29 entries across 29 versions & 1 rubygems

Version Path
arc-furnace-0.1.42 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.41 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.40 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.39 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.38 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.37 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.36 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.35 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.34 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.33 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.32 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.31 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.30 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.29 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.28 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.27 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.26 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.25 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.24 lib/arc-furnace/enumerator_source.rb
arc-furnace-0.1.23 lib/arc-furnace/enumerator_source.rb