class Baza::Driver::Sqlite3::UnbufferedResult

Public Class Methods

new(_driver, statement) click to toggle source
# File lib/baza/driver/sqlite3/unbuffered_result.rb, line 2
def initialize(_driver, statement)
  @statement = statement
  @statement.execute
  @columns = statement.columns.map(&:to_sym)
end

Public Instance Methods

each() { |data| ... } click to toggle source
# File lib/baza/driver/sqlite3/unbuffered_result.rb, line 21
def each
  loop do
    data = fetch

    if data
      yield data
    else
      break
    end
  end
end
fetch() click to toggle source
# File lib/baza/driver/sqlite3/unbuffered_result.rb, line 8
def fetch
  return nil if @closed

  array = @statement.step

  if @statement.done?
    close
    return nil
  end

  return Hash[*@columns.zip(array).flatten] if array
end

Private Instance Methods

close() click to toggle source
# File lib/baza/driver/sqlite3/unbuffered_result.rb, line 35
def close
  @statement.close
  @closed = true
end