Class: DataObjects::Reader

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/data_objects/reader.rb

Overview

Abstract class to read rows from a query result

Instance Method Summary collapse

Instance Method Details

#closeObject

Close the reader discarding any unread results.

Raises:

  • (NotImplementedError)


18
19
20
# File 'lib/data_objects/reader.rb', line 18

def close
  raise NotImplementedError.new
end

#eachObject

Yield each row to the given block as a Hash



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/data_objects/reader.rb', line 33

def each
  begin
    while next!
      row = {}
      fields.each_with_index { |field, index| row[field] = values[index] }
      yield row
    end
  ensure
    close
  end
  self
end

#field_countObject

Return the number of fields in the result set.

Raises:

  • (NotImplementedError)


28
29
30
# File 'lib/data_objects/reader.rb', line 28

def field_count
  raise NotImplementedError.new
end

#fieldsObject

Return the array of field names

Raises:

  • (NotImplementedError)


8
9
10
# File 'lib/data_objects/reader.rb', line 8

def fields
  raise NotImplementedError.new
end

#next!Object

Discard the current row (if any) and read the next one (returning true), or return nil if there is no further row.

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/data_objects/reader.rb', line 23

def next!
  raise NotImplementedError.new
end

#valuesObject

Return the array of field values for the current row. Not legal after next! has returned false or before it’s been called

Raises:

  • (NotImplementedError)


13
14
15
# File 'lib/data_objects/reader.rb', line 13

def values
  raise NotImplementedError.new
end