Class: Appsignal::Config

Inherits:
Object
  • Object
show all
Includes:
CarefulLogger
Defined in:
lib/appsignal/config.rb

Constant Summary collapse

DEFAULT_CONFIG =
{
  :ignore_exceptions => [],
  :send_params => true,
  :endpoint => 'https://push.appsignal.com/1',
  :slow_request_threshold => 200,
  :instrument_net_http => true
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from CarefulLogger

#carefully_log_error

Constructor Details

#initialize(root_path, env, initial_config = {}, logger = Appsignal.logger) ⇒ Config

Returns a new instance of Config.



19
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
45
# File 'lib/appsignal/config.rb', line 19

def initialize(root_path, env, initial_config={}, logger=Appsignal.logger)
  @root_path = root_path
  @env = env.to_s
  @initial_config = initial_config
  @logger = logger

  if File.exists?(config_file)
    load_config_from_disk
  elsif ENV['APPSIGNAL_PUSH_API_KEY']
    load_default_config_with_push_api_key(
      ENV['APPSIGNAL_PUSH_API_KEY']
    )
  elsif ENV['APPSIGNAL_API_KEY']
    load_default_config_with_push_api_key(
      ENV['APPSIGNAL_API_KEY']
    )
    @logger.info(
      'The APPSIGNAL_API_KEY environment variable has been deprecated, ' \
      'please switch to APPSIGNAL_PUSH_API_KEY'
    )
  else
    carefully_log_error(
      "Not loading: No config file found at '#{config_file}' " \
      "and no APPSIGNAL_PUSH_API_KEY env var present"
    )
  end
end

Instance Attribute Details

#config_hashObject (readonly)

Returns the value of attribute config_hash.



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

def config_hash
  @config_hash
end

#envObject (readonly)

Returns the value of attribute env.



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

def env
  @env
end

#initial_configObject (readonly)

Returns the value of attribute initial_config.



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

def initial_config
  @initial_config
end

#root_pathObject (readonly)

Returns the value of attribute root_path.



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

def root_path
  @root_path
end

Instance Method Details

#[](key) ⇒ Object



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

def [](key)
  return unless loaded?
  config_hash[key]
end

#active?Boolean

Returns:

  • (Boolean)


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

def active?
  !! self[:active]
end

#loaded?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/appsignal/config.rb', line 47

def loaded?
  !! config_hash
end