class MiniSql::Mysql::Connection
Attributes
deserializer_cache[R]
param_encoder[R]
raw_connection[R]
Public Class Methods
new(raw_connection, args = nil)
click to toggle source
# File lib/mini_sql/mysql/connection.rb, line 8 def initialize(raw_connection, args = nil) @raw_connection = raw_connection @param_encoder = (args && args[:param_encoder]) || InlineParamEncoder.new(self) @deserializer_cache = (args && args[:deserializer_cache]) || DeserializerCache.new end
Public Instance Methods
build(sql)
click to toggle source
# File lib/mini_sql/mysql/connection.rb, line 54 def build(sql) Builder.new(self, sql) end
escape_string(str)
click to toggle source
# File lib/mini_sql/mysql/connection.rb, line 50 def escape_string(str) raw_connection.escape(str) end
exec(sql, *params)
click to toggle source
# File lib/mini_sql/mysql/connection.rb, line 35 def exec(sql, *params) run(sql, :array, params) raw_connection.affected_rows end
prepared(condition = true)
click to toggle source
# File lib/mini_sql/mysql/connection.rb, line 14 def prepared(condition = true) if condition @prepared ||= PreparedConnection.new(self) else self end end
query(sql, *params)
click to toggle source
# File lib/mini_sql/mysql/connection.rb, line 40 def query(sql, *params) result = run(sql, :array, params) deserializer_cache.materialize(result) end
query_array(sql, *params)
click to toggle source
# File lib/mini_sql/mysql/connection.rb, line 31 def query_array(sql, *params) run(sql, :array, params).to_a end
query_decorator(decorator, sql, *params)
click to toggle source
# File lib/mini_sql/mysql/connection.rb, line 45 def query_decorator(decorator, sql, *params) result = run(sql, :array, params) deserializer_cache.materialize(result, decorator) end
query_hash(sql, *params)
click to toggle source
# File lib/mini_sql/mysql/connection.rb, line 26 def query_hash(sql, *params) result = run(sql, :hash, params) result.to_a end
query_single(sql, *params)
click to toggle source
# File lib/mini_sql/mysql/connection.rb, line 22 def query_single(sql, *params) run(sql, :array, params).to_a.flatten! end
Private Instance Methods
run(sql, as, params)
click to toggle source
# File lib/mini_sql/mysql/connection.rb, line 60 def run(sql, as, params) if params && params.length > 0 sql = param_encoder.encode(sql, *params) end raw_connection.query( sql, as: as, database_timezone: :utc, application_timezone: :utc, cast_booleans: true, cast: true, cache_rows: true, symbolize_keys: false ) end