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
|