class NineOneOne::Configuration

Attributes

logger[RW]
pager_duty_integration_key[RW]
send_pagers[RW]
slack_channel[RW]
slack_enabled[RW]
slack_username[RW]
slack_webhook_url[RW]

Public Class Methods

new() click to toggle source
# File lib/nine_one_one/configuration.rb, line 9
def initialize
  self.send_pagers = false
  self.slack_enabled = false
  self.logger = Logger.new(STDOUT)
end

Public Instance Methods

validate() click to toggle source
# File lib/nine_one_one/configuration.rb, line 15
def validate
  validate_send_pagers
  validate_logger
  validate_pager_duty_key
  validate_slack_enabled
  validate_slack_opts
end

Private Instance Methods

validate_logger() click to toggle source

rubocop:disable Style/GuardClause

# File lib/nine_one_one/configuration.rb, line 32
def validate_logger
  raise ConfigurationError, "Logger: #{logger.class} doesn't respond to #error" unless logger.respond_to?(:error)
  raise ConfigurationError, "Logger: #{logger.class} doesn't respond to #info" unless logger.respond_to?(:info)
end
validate_pager_duty_key() click to toggle source
# File lib/nine_one_one/configuration.rb, line 37
def validate_pager_duty_key
  return true unless send_pagers

  if pager_duty_integration_key.nil? || pager_duty_integration_key.empty?
    raise ConfigurationError, "Missing 'pager_duty_integration_key' parameter"
  end
end
validate_send_pagers() click to toggle source
# File lib/nine_one_one/configuration.rb, line 25
def validate_send_pagers
  raise ConfigurationError, "Illegal 'send_pagers' value: #{send_pagers}" unless [true, false].include?(send_pagers)

  raise ConfigurationError, "'send_pagers' is false but no logger given" if !send_pagers && logger.nil?
end
validate_slack_enabled() click to toggle source
# File lib/nine_one_one/configuration.rb, line 45
def validate_slack_enabled
  unless [true, false].include?(slack_enabled)
    raise ConfigurationError, "Illegal 'slack_enabled' value: #{slack_enabled}"
  end

  if slack_enabled && (slack_webhook_url.nil? || slack_webhook_url.empty?)
    raise ConfigurationError, 'Incorrect Slack webhook URL'
  end
end
validate_slack_opts() click to toggle source
# File lib/nine_one_one/configuration.rb, line 55
def validate_slack_opts
  unless slack_username.nil? || slack_username.is_a?(String)
    raise ConfigurationError, "Illegal 'slack_username' value: #{slack_username}"
  end

  unless slack_channel.nil? || slack_channel.is_a?(String)
    raise ConfigurationError, "Illegal 'slack_channel' value: #{slack_channel}"
  end
end