module Octoshark::CurrentConnection

Public Instance Methods

current_connection() click to toggle source
# File lib/octoshark/current_connection.rb, line 3
def current_connection
  Thread.current[identifier] || raise(Octoshark::Error::NoCurrentConnection, "No current connection")
end
current_connection?() click to toggle source
# File lib/octoshark/current_connection.rb, line 7
def current_connection?
  !Thread.current[identifier].nil?
end
current_or_default_connection() click to toggle source
# File lib/octoshark/current_connection.rb, line 11
def current_or_default_connection
  Thread.current[identifier] || ActiveRecord::Base.connection_pool.connection
end
identifier() click to toggle source
# File lib/octoshark/current_connection.rb, line 21
def identifier
  @identifier ||= "octoshark_#{object_id}"
end
without_connection() { || ... } click to toggle source
# File lib/octoshark/current_connection.rb, line 15
def without_connection(&block)
  change_connection_reference(nil) do
    yield
  end
end

Private Instance Methods

change_connection_reference(connection) { || ... } click to toggle source
# File lib/octoshark/current_connection.rb, line 26
def change_connection_reference(connection, &block)
  previous_connection = Thread.current[identifier]
  Thread.current[identifier] = connection

  begin
    yield
  ensure
    Thread.current[identifier] = previous_connection
  end
end