Class: Exceptional::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/exceptional/config.rb

Defined Under Namespace

Classes: ConfigurationException

Constant Summary collapse

DEFAULTS =
{
  :ssl => false,
  :remote_host_http => 'plugin.getexceptional.com',
  :http_open_timeout => 2,
  :http_read_timeout => 4,
  :disabled_by_default => %w(development test)
}

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.api_keyObject

Returns the value of attribute api_key.



16
17
18
# File 'lib/exceptional/config.rb', line 16

def api_key
  @api_key
end

.enabledObject

Returns the value of attribute enabled.



16
17
18
# File 'lib/exceptional/config.rb', line 16

def enabled
  @enabled
end

.http_proxy_hostObject

Returns the value of attribute http_proxy_host.



17
18
19
# File 'lib/exceptional/config.rb', line 17

def http_proxy_host
  @http_proxy_host
end

.http_proxy_passwordObject

Returns the value of attribute http_proxy_password.



17
18
19
# File 'lib/exceptional/config.rb', line 17

def http_proxy_password
  @http_proxy_password
end

.http_proxy_portObject

Returns the value of attribute http_proxy_port.



17
18
19
# File 'lib/exceptional/config.rb', line 17

def http_proxy_port
  @http_proxy_port
end

.http_proxy_usernameObject

Returns the value of attribute http_proxy_username.



17
18
19
# File 'lib/exceptional/config.rb', line 17

def http_proxy_username
  @http_proxy_username
end

.ssl=(value) ⇒ Object (writeonly)

Sets the attribute ssl

Parameters:

  • value

    the value to set the attribute ssl to.



18
19
20
# File 'lib/exceptional/config.rb', line 18

def ssl=(value)
  @ssl = value
end

Class Method Details

.application_environmentObject



51
52
53
# File 'lib/exceptional/config.rb', line 51

def application_environment
  ENV['RACK_ENV'] || ENV['RAILS_ENV']|| 'development'
end

.application_rootObject



60
61
62
# File 'lib/exceptional/config.rb', line 60

def application_root
  (defined?(Rails) && Rails.respond_to?(:root)) ? Rails.root : Dir.pwd
end

.http_open_timeoutObject



80
81
82
# File 'lib/exceptional/config.rb', line 80

def http_open_timeout
  @http_open_timeout ||= DEFAULTS[:http_open_timeout]
end

.http_read_timeoutObject



84
85
86
# File 'lib/exceptional/config.rb', line 84

def http_read_timeout
  @http_read_timeout ||= DEFAULTS[:http_read_timeout]
end

.load(config_file = nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/exceptional/config.rb', line 20

def load(config_file=nil)
  if (config_file && File.file?(config_file))
    begin
      config = YAML::load_file(config_file)
      env_config = config[application_environment] || {}
      @api_key = config['api-key'] || env_config['api-key']

      @http_proxy_host = config['http-proxy-host']
      @http_proxy_port = config['http-proxy-port']
      @http_proxy_username = config['http-proxy-username']
      @http_proxy_password = config['http-proxy-password']
      @http_open_timeout = config['http-open-timeout']
      @http_read_timeout = config['http-read-timeout'] 

      @ssl = config['ssl'] || env_config['ssl']
      @enabled = env_config['enabled']
      @remote_port = config['remote-port'].to_i unless config['remote-port'].nil?
      @remote_host = config['remote-host'] unless config['remote-host'].nil?
    rescue Exception => e
      raise ConfigurationException.new("Unable to load configuration #{config_file} for environment #{application_environment} : #{e.message}")
    end
  else
    puts "Exceptional::Config.load - no configuration file"
  end
end

.remote_hostObject



68
69
70
# File 'lib/exceptional/config.rb', line 68

def remote_host
  @remote_host ||= DEFAULTS[:remote_host_http]
end

.remote_portObject



72
73
74
# File 'lib/exceptional/config.rb', line 72

def remote_port
  @remote_port ||= ssl? ? 443 : 80
end

.resetObject



76
77
78
# File 'lib/exceptional/config.rb', line 76

def reset
  @enabled = @ssl = @remote_host = @remote_port = @api_key = nil
end

.should_send_to_api?Boolean

Returns:

  • (Boolean)


55
56
57
58
# File 'lib/exceptional/config.rb', line 55

def should_send_to_api?
  return @enabled unless @enabled.nil?
  @enabled = !(DEFAULTS[:disabled_by_default].include?(application_environment))
end

.ssl?Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/exceptional/config.rb', line 64

def ssl?
  @ssl ||= DEFAULTS[:ssl]
end