Class: ConsoleKit::Connections::BaseConnectionHandler
- Inherits:
-
Object
- Object
- ConsoleKit::Connections::BaseConnectionHandler
- Includes:
- DiagnosticHelpers
- Defined in:
- lib/console_kit/connections/base_connection_handler.rb
Overview
Parent class for connection handlers
Direct Known Subclasses
ElasticsearchConnectionHandler, MongoConnectionHandler, RedisConnectionHandler, SqlConnectionHandler
Instance Attribute Summary collapse
-
#context ⇒ Object
readonly
Returns the value of attribute context.
Class Method Summary collapse
Instance Method Summary collapse
- #available? ⇒ Boolean
- #connect ⇒ Object
- #diagnostics ⇒ Object
-
#initialize(context) ⇒ BaseConnectionHandler
constructor
A new instance of BaseConnectionHandler.
- #safe_diagnostics(timeout: 2) ⇒ Object
Methods included from DiagnosticHelpers
clock_time, error_diagnostics, timeout_diagnostics
Constructor Details
#initialize(context) ⇒ BaseConnectionHandler
Returns a new instance of BaseConnectionHandler.
20 |
# File 'lib/console_kit/connections/base_connection_handler.rb', line 20 def initialize(context) = @context = context |
Instance Attribute Details
#context ⇒ Object (readonly)
Returns the value of attribute context.
18 19 20 |
# File 'lib/console_kit/connections/base_connection_handler.rb', line 18 def context @context end |
Class Method Details
.registry ⇒ Object
15 |
# File 'lib/console_kit/connections/base_connection_handler.rb', line 15 def registry = descendants |
Instance Method Details
#available? ⇒ Boolean
22 |
# File 'lib/console_kit/connections/base_connection_handler.rb', line 22 def available? = raise NotImplementedError, "#{self.class} must implement #available?" |
#connect ⇒ Object
21 |
# File 'lib/console_kit/connections/base_connection_handler.rb', line 21 def connect = raise NotImplementedError, "#{self.class} must implement #connect" |
#diagnostics ⇒ Object
23 |
# File 'lib/console_kit/connections/base_connection_handler.rb', line 23 def diagnostics = raise NotImplementedError, "#{self.class} must implement #diagnostics" |
#safe_diagnostics(timeout: 2) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/console_kit/connections/base_connection_handler.rb', line 25 def safe_diagnostics(timeout: 2) handler_name = self.class.name.demodulize.delete_suffix('ConnectionHandler') thread, result_wrapper = spawn_diagnostic_thread(handler_name) if thread.join(timeout) result_wrapper[:value] || error_diagnostics(handler_name, StandardError.new('Unknown error')) else thread.kill timeout_diagnostics(handler_name, timeout) end end |