Sha256: f6c8fd8649dcf8bda3f73bbf3d56b92431f84a0e93876b19d0f298c43a9b6977
Contents?: true
Size: 1.12 KB
Versions: 1
Compression:
Stored size: 1.12 KB
Contents
require "harmoniser/connection" module Harmoniser module Connectable MUTEX = Mutex.new def connection_opts @connection_opts ||= Connection::DEFAULT_CONNECTION_OPTS .merge({ logger: Harmoniser.logger, recovery_attempt_started: proc { stringified_connection = connection.to_s Harmoniser.logger.info("Recovery attempt started: connection = `#{stringified_connection}`") }, recovery_completed: proc { stringified_connection = connection.to_s Harmoniser.logger.info("Recovery completed: connection = `#{stringified_connection}`") } }) end def connection_opts=(opts) raise TypeError, "opts must be a Hash object" unless opts.is_a?(Hash) @connection_opts = connection_opts.merge(opts) end def connection MUTEX.synchronize do @connection ||= Connection.new(connection_opts) @connection.start unless @connection.open? || @connection.recovering_from_network_failure? @connection end end def connection? !!defined?(@connection) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
harmoniser-0.10.0 | lib/harmoniser/connectable.rb |