Class: Appsignal::Config

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

Constant Summary collapse

DEFAULT_CONFIG =
{
  :ignore_exceptions      => [],
  :ignore_actions         => [],
  :send_params            => true,
  :endpoint               => 'https://push.appsignal.com/1',
  :slow_request_threshold => 200,
  :instrument_net_http    => true,
  :skip_session_data      => false
}.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.



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
46
47
48
49
50
51
52
53
# File 'lib/appsignal/config.rb', line 21

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
  if config_hash && !config_hash[:name]
    @logger.debug(
      "There's no application name set in your config file. " \
      "You should set one unless your app runs on Heroku."
    )
  end
end

Instance Attribute Details

#config_hashObject (readonly)

Returns the value of attribute config_hash.



19
20
21
# File 'lib/appsignal/config.rb', line 19

def config_hash
  @config_hash
end

#envObject (readonly)

Returns the value of attribute env.



19
20
21
# File 'lib/appsignal/config.rb', line 19

def env
  @env
end

#initial_configObject (readonly)

Returns the value of attribute initial_config.



19
20
21
# File 'lib/appsignal/config.rb', line 19

def initial_config
  @initial_config
end

#root_pathObject (readonly)

Returns the value of attribute root_path.



19
20
21
# File 'lib/appsignal/config.rb', line 19

def root_path
  @root_path
end

Instance Method Details

#[](key) ⇒ Object



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

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

#active?Boolean

Returns:

  • (Boolean)


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

def active?
  !! self[:active]
end

#loaded?Boolean

Returns:

  • (Boolean)


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

def loaded?
  !! config_hash
end