Class: KnjDB_sqlite3_result

Inherits:
Object show all
Defined in:
lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb

Overview

This class handels the result when running MRI (or others).

Instance Method Summary collapse

Constructor Details

#initialize(driver, result_array) ⇒ KnjDB_sqlite3_result

Constructor. This should not be called manually.



147
148
149
150
151
152
153
154
155
156
# File 'lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb', line 147

def initialize(driver, result_array)
  @result_array = result_array
  @index = 0
  
  if driver.knjdb.opts[:return_keys] == "symbols"
    @symbols = true
  else
    @symbols = false
  end
end

Instance Method Details

#eachObject

Loops over every result yielding them.



179
180
181
182
183
# File 'lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb', line 179

def each
  while data = self.fetch
    yield(data)
  end
end

#fetchObject

Returns a single result.



159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# File 'lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb', line 159

def fetch
  result_hash = @result_array[@index]
  return false if !result_hash
  @index += 1
  
  ret = {}
  result_hash.each do |key, val|
    if (Float(key) rescue false)
      #do nothing.
    elsif @symbols and !key.is_a?(Symbol)
      ret[key.to_sym] = val
    else
      ret[key] = val
    end
  end
  
  return ret
end