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