class TieredCaching::SafeConnectionPool
Public Class Methods
new(internal_pool, &recovery_callback)
click to toggle source
# File lib/tiered_caching/safe_connection_pool.rb, line 3 def initialize(internal_pool, &recovery_callback) @internal_pool = internal_pool @recovery_callback = recovery_callback end
Public Instance Methods
disabled?()
click to toggle source
# File lib/tiered_caching/safe_connection_pool.rb, line 16 def disabled? !!@disabled end
enable!()
click to toggle source
# File lib/tiered_caching/safe_connection_pool.rb, line 12 def enable! @disabled = false end
with(&block)
click to toggle source
# File lib/tiered_caching/safe_connection_pool.rb, line 8 def with(&block) @internal_pool.with { |conn| safe_with(conn, &block) } end
Private Instance Methods
safe_with(conn) { |conn| ... }
click to toggle source
# File lib/tiered_caching/safe_connection_pool.rb, line 22 def safe_with(conn) return nil if disabled? begin yield conn rescue @disabled = true @recovery_callback.call(self) nil end end