Class: KnjDB_sqlite3_result_java

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

Overview

This class handels results when running in JRuby.

Instance Method Summary collapse

Constructor Details

#initialize(driver, rs) ⇒ KnjDB_sqlite3_result_java

Returns a new instance of KnjDB_sqlite3_result_java.



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# File 'lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb', line 105

def initialize(driver, rs)
  @index = 0
  retkeys = driver.knjdb.opts[:return_keys]
  
  if rs
     = rs.
    columns_count = .getColumnCount
    
    @rows = []
    while rs.next
      row_data = {}
      for i in (1..columns_count)
        col_name = .getColumnName(i)
        col_name = col_name.to_s.to_sym if retkeys == "symbols"
        row_data[col_name] = rs.getString(i)
      end
      
      @rows << row_data
    end
  end
end

Instance Method Details

#eachObject

Loops over every result and yields them.



137
138
139
140
141
# File 'lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb', line 137

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

#fetchObject

Returns a single result.



128
129
130
131
132
133
134
# File 'lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb', line 128

def fetch
  return false if !@rows
  ret = @rows[@index]
  return false if !ret
  @index += 1
  return ret
end