Sha256: e60d5288a086d712f4fd034a1f93a602d76df7f751ca6214ff1a98077c8862da

Contents?: true

Size: 576 Bytes

Versions: 19

Compression:

Stored size: 576 Bytes

Contents

class Baza::Driver::Sqlite3::UnbufferedResult
  def initialize(_driver, statement)
    @statement = statement
    @statement.execute
    @columns = statement.columns.map(&:to_sym)
  end

  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

  def each
    loop do
      data = fetch

      if data
        yield data
      else
        break
      end
    end
  end

private

  def close
    @statement.close
    @closed = true
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
baza-0.0.39 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.38 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.37 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.36 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.35 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.34 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.33 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.32 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.31 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.30 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.29 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.28 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.27 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.26 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.25 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.24 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.23 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.22 lib/baza/driver/sqlite3/unbuffered_result.rb
baza-0.0.21 lib/baza/driver/sqlite3/unbuffered_result.rb