Class: ExceptionsBegone::ConnectionConfigurator

Inherits:
Object
  • Object
show all
Defined in:
lib/exceptions_begone/connection_configurator.rb

Constant Summary collapse

@@defaults =
{
  :project => "production",
  :port => 80,
  :open_timeout => 5,
  :read_timeout => 5,
  :host => "127.0.0.1"
}

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(parameters = {}) ⇒ ConnectionConfigurator

Returns a new instance of ConnectionConfigurator.



29
30
31
32
33
# File 'lib/exceptions_begone/connection_configurator.rb', line 29

def initialize(parameters = {})
  parameters.each do |method_name, key|
    self.__send__("#{method_name}=", key)
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_id, *args, &block) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/exceptions_begone/connection_configurator.rb', line 39

def method_missing(method_id, *args, &block)
  method_id.to_s =~ /(\w*)(=)?/
  name, setter = $1, $2
  
  super unless @@defaults.include?(name.to_sym)
  
  if setter
    instance_variable_set("@#{name}", *args)
  else
    instance_variable_get("@#{name}") || @@defaults[method_id]
  end
end

Class Attribute Details

.global_connectionObject



14
15
16
# File 'lib/exceptions_begone/connection_configurator.rb', line 14

def global_connection
  @global_connection ||= ConnectionConfigurator.new
end

Class Method Details

.build(parameters = {}) ⇒ Object



23
24
25
# File 'lib/exceptions_begone/connection_configurator.rb', line 23

def build(parameters = {})
  parameters.blank? ? self.global_connection : new(parameters)
end

.global_parameters=(parameters = {}) ⇒ Object



18
19
20
21
# File 'lib/exceptions_begone/connection_configurator.rb', line 18

def global_parameters=(parameters = {})
  parameters = parameters.marshal_dump if parameters.respond_to?(:marshal_dump)
  self.global_connection = ConnectionConfigurator.build(parameters)
end

Instance Method Details

#pathObject



35
36
37
# File 'lib/exceptions_begone/connection_configurator.rb', line 35

def path
  "/projects/#{project}/notifications"
end