Class: DataMapper::Adapters::MysqlAdapter::Queries::Reader

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/data_mapper/adapters/mysql_adapter.rb

Overview

class Connection

Instance Method Summary collapse

Constructor Details

#initialize(results) ⇒ Reader

Returns a new instance of Reader.



118
119
120
121
122
123
124
125
# File 'lib/data_mapper/adapters/mysql_adapter.rb', line 118

def initialize(results)
  @results = results
  @columns = {}
  results.fetch_fields.each_with_index do |field, index|
    @columns[field.name] = index
  end
  @current_row_index = 0
end

Instance Method Details

#[](column) ⇒ Object



148
149
150
151
152
# File 'lib/data_mapper/adapters/mysql_adapter.rb', line 148

def [](column)
  index = @columns[column]
  return nil if index.nil?
  @current_row[index]
end

#closeObject



160
161
162
# File 'lib/data_mapper/adapters/mysql_adapter.rb', line 160

def close
  @results.free
end

#eachObject



141
142
143
144
145
146
# File 'lib/data_mapper/adapters/mysql_adapter.rb', line 141

def each
  @results.each do |row|
    @current_row = row
    yield self
  end
end

#each_pairObject



154
155
156
157
158
# File 'lib/data_mapper/adapters/mysql_adapter.rb', line 154

def each_pair
  @columns.each_pair do |column_name, index|
    yield(column_name, @current_row[index])
  end
end

#eof?Boolean

Returns:

  • (Boolean)


127
128
129
# File 'lib/data_mapper/adapters/mysql_adapter.rb', line 127

def eof?
  records_affected <= @current_row_index
end

#nextObject



135
136
137
138
139
# File 'lib/data_mapper/adapters/mysql_adapter.rb', line 135

def next
  @current_row_index += 1
  @current_row = @results.fetch_row
  self
end

#records_affectedObject



131
132
133
# File 'lib/data_mapper/adapters/mysql_adapter.rb', line 131

def records_affected
  @results.num_rows
end