lib/baza/jdbc_result.rb in baza-0.0.20 vs lib/baza/jdbc_result.rb in baza-0.0.21
- old
+ new
@@ -1,36 +1,42 @@
# This class controls the result for the Java-MySQL-driver.
class Baza::JdbcResult < Baza::ResultBase
- INT_TYPES = {-6 => true, -5 => true, 4 => true, 5 => true}
- FLOAT_TYPES = {2 => true, 3 => true, 7 => true, 8 => true}
- TIME_TYPES = {93 => true}
- DATE_TYPES = {91 => true}
- STRING_TYPES = {-1 => true, 1 => true, 12 => true}
- NIL_TYPES = {0 => true}
+ INT_TYPES = {-6 => true, -5 => true, 4 => true, 5 => true}.freeze
+ FLOAT_TYPES = {2 => true, 3 => true, 7 => true, 8 => true}.freeze
+ TIME_TYPES = {93 => true}.freeze
+ DATE_TYPES = {91 => true}.freeze
+ STRING_TYPES = {-1 => true, 1 => true, 12 => true}.freeze
+ NIL_TYPES = {0 => true}.freeze
# Constructor. This should not be called manually.
def initialize(driver, stmt, result_set, preload_results)
@result_set = result_set
@stmt = stmt
- @type_translation = driver.baza.opts[:type_translation]
+ @type_translation = driver.db.opts[:type_translation]
@rows = []
@index = -1
read_results if preload_results
end
def fetch
if @read_results
return false if @rows.empty?
- row = @rows.shift
+ @rows.shift
else
- return read_row
+ read_row
end
end
def each
- while data = fetch
- yield data
+ loop do
+ data = fetch
+
+ if data
+ yield data
+ else
+ break
+ end
end
end
private
@@ -59,10 +65,12 @@
def read_results
@read_results = true
loop do
- if row = read_row
+ row = read_row
+
+ if row
@rows << row
else
break
end
end