lib/adhoq/executor.rb in adhoq-0.0.5 vs lib/adhoq/executor.rb in adhoq-0.0.6

- old
+ new

@@ -1,43 +1,19 @@ module Adhoq class Executor - class << self - def select(query) - with_sandbox do - current_connection.exec_query(query) - end - end + autoload 'ConnectionWrapper', 'adhoq/executor/connection_wrapper' - def explain(query) - with_sandbox do - current_connection.explain(query) - end - end - - def current_connection - ActiveRecord::Base.connection - end - - def with_sandbox - result = nil - ActiveRecord::Base.transaction do - result = yield - raise ActiveRecord::Rollback - end - result - end - end - def initialize(query) + @connection = ConnectionWrapper.new @query = query end def execute - wrap_result(self.class.select(@query)) + wrap_result(@connection.select(@query)) end def explain - self.class.explain(@query) + @connection.explain(@query) end private def wrap_result(ar_result)