Sha256: 2346fd7dee7b8ad86b3d44dcffbd42c9d16ad1bf789d3f2fcd8d701c22caaa80

Contents?: true

Size: 1.07 KB

Versions: 19

Compression:

Stored size: 1.07 KB

Contents

module DataObjects
  # Abstract class to read rows from a query result
  class Reader

    include Enumerable

    # Return the array of field names
    def fields
      raise NotImplementedError.new
    end

    # Return the array of field values for the current row. Not legal after next! has returned false or before it's been called
    def values
      raise NotImplementedError.new
    end

    # Close the reader discarding any unread results.
    def close
      raise NotImplementedError.new
    end

    # Discard the current row (if any) and read the next one (returning true), or return nil if there is no further row.
    def next!
      raise NotImplementedError.new
    end

    # Return the number of fields in the result set.
    def field_count
      raise NotImplementedError.new
    end

    # Yield each row to the given block as a Hash
    def each
      begin
        while next!
          row = {}
          fields.each_with_index { |field, index| row[field] = values[index] }
          yield row
        end
      ensure
        close
      end
      self
    end

  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
data_objects-0.10.17 lib/data_objects/reader.rb
data_objects-0.10.16 lib/data_objects/reader.rb
data_objects-0.10.15 lib/data_objects/reader.rb
data_objects-0.10.14 lib/data_objects/reader.rb
data_objects-0.10.13 lib/data_objects/reader.rb
data_objects-0.10.12 lib/data_objects/reader.rb
data_objects-0.10.11 lib/data_objects/reader.rb
data_objects-0.10.10 lib/data_objects/reader.rb
data_objects-0.10.9 lib/data_objects/reader.rb
data_objects-0.10.8 lib/data_objects/reader.rb
data_objects-0.10.7 lib/data_objects/reader.rb
data_objects-0.10.6 lib/data_objects/reader.rb
data_objects-0.10.5 lib/data_objects/reader.rb
data_objects-0.10.4 lib/data_objects/reader.rb
data_objects-0.10.4.rc2 lib/data_objects/reader.rb
data_objects-0.10.4.rc1 lib/data_objects/reader.rb
data_objects-0.10.3 lib/data_objects/reader.rb
data_objects-0.10.2 lib/data_objects/reader.rb
data_objects-0.10.1 lib/data_objects/reader.rb