Class: DohDb::TypedRowBuilder

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

Instance Method Summary collapse

Constructor Details

#initialize(row_klass = nil, guesser = nil) ⇒ TypedRowBuilder

Returns a new instance of TypedRowBuilder.



7
8
9
10
# File 'lib/doh/mysql/typed_row_builder.rb', line 7

def initialize(row_klass = nil, guesser = nil)
  @row_klass = row_klass || ReadOnlyRow
  @guesser = guesser || DefaultTypeGuesser
end

Instance Method Details

#build_rows(result_set) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/doh/mysql/typed_row_builder.rb', line 12

def build_rows(result_set)
  meta_info = result_set.fetch_fields
  field_names = meta_info.collect {|elem| elem.name}

  retval = []
  result_set.each do |row|
    typed_values = []
    row.each_with_index do |field, index|
      typed_values[index] = @guesser.guess_type(field, meta_info[index])
    end
    retval.push(@row_klass.new(field_names, typed_values))
  end
  retval
end