Module: SQLite3::Driver

Extended by:
Fiddle::Importer
Defined in:
lib/sqlite3/driver.rb

Class Method Summary collapse

Class Method Details

.set_context_result(ctx, var) ⇒ Object



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/sqlite3/driver.rb', line 91

def self.set_context_result(ctx, var)
  case var
  when Blob
    Driver.sqlite3_result_blob(ctx, var.to_s, var.to_s.size, nil)
  when String
    if var.encoding == Encoding::UTF_16LE ||
       var.encoding == Encoding::UTF_16BE
      Driver.sqlite3_result_text16(ctx, var, -1, nil)
    else
      Driver.sqlite3_result_text(ctx, var.encode(Encoding::UTF_8), -1, nil)
    end
  when Fixnum, Bignum
    Driver.sqlite3_result_int64(ctx, var)
  when Float
    Driver.sqlite3_result_double(ctx, var)
  when NilClass
    Driver.sqlite3_result_null(ctx)
  when TrueClass, FalseClass
    Driver.sqlite3_result_int(ctx, var ? 1 : 0)
  else
    raise RuntimeError, "can't return #{var.class}"
  end
end