Class: DohDb::TypedRowBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/dohmysql/typed_row_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(arg = ReadOnlyRow) ⇒ TypedRowBuilder

Returns a new instance of TypedRowBuilder.



7
8
9
10
11
12
13
14
15
# File 'lib/dohmysql/typed_row_builder.rb', line 7

def initialize(arg = ReadOnlyRow)
  if arg.is_a?(String)
    @row_klass = SmartRow
    @table = arg
  else
    @row_klass = arg
    @table = nil
  end
end

Instance Method Details

#build_rows(result_set) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/dohmysql/typed_row_builder.rb', line 17

def build_rows(result_set)
  return [] if result_set.size == 0

  retval = []
  result_set.each do |row|
    keys = []
    values = []
    row.each_pair do |key, value|
      keys.push(key)
      if value.is_a?(Time)
        values.push(value.to_datetime)
      else
        values.push(value)
      end
    end
    if @table
      row = @row_klass.new(keys, values, @table)
    else
      row = @row_klass.new(keys, values)
    end
    retval.push(row)
  end
  retval
end