lib/mini_sql/sqlite/connection.rb in mini_sql-1.0.1 vs lib/mini_sql/sqlite/connection.rb in mini_sql-1.1.0
- old
+ new
@@ -7,12 +7,18 @@
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
+
+ @prepared = PreparedConnection.new(self, @deserializer_cache)
end
+ def prepared(condition = true)
+ condition ? @prepared : self
+ end
+
def query_single(sql, *params)
# a bit lazy can be optimized
run(sql, *params).flatten!
end
@@ -66,10 +72,12 @@
if params && params.length > 0
sql = param_encoder.encode(sql, *params)
end
if block_given?
stmt = SQLite3::Statement.new(raw_connection, sql)
- yield stmt.execute
+ result = yield stmt.execute
+ stmt.close
+ result
else
raw_connection.execute(sql)
end
end
end