Module: NineOneOne

Defined in:
lib/nine_one_one/http.rb,
lib/nine_one_one.rb,
lib/nine_one_one/errors.rb,
lib/nine_one_one/version.rb,
lib/nine_one_one/notifier.rb,
lib/nine_one_one/log_service.rb,
lib/nine_one_one/configuration.rb,
lib/nine_one_one/slack_service.rb,
lib/nine_one_one/pager_duty_service.rb

Overview

a minimal wrapper around Net::HTTP which encapsulates ugly Net::HTTP errors and throws NineOneOne:Errors instead. The implementation is based on Faraday’s Net::HTTP adapter

Defined Under Namespace

Classes: Configuration, ConfigurationError, ConnectionFailedError, Error, Http, HttpError, IncidentReportingError, LogService, NotConfiguredError, NotificationError, Notifier, PagerDutyService, SSLError, SlackService, TimeoutError

Constant Summary collapse

VERSION =
'2.1.0'.freeze

Class Method Summary collapse

Class Method Details

.configsObject



26
27
28
# File 'lib/nine_one_one.rb', line 26

def self.configs
  @configs ||= {}
end

.configure(type = :default) {|config| ... } ⇒ Object

Yields:

  • (config)


11
12
13
14
15
16
17
18
19
# File 'lib/nine_one_one.rb', line 11

def self.configure(type = :default)
  config = Configuration.new

  yield config

  config.validate

  configs[type] = config
end

.emergency(description, source: Socket.gethostname, dedup_key: nil, severity: PagerDutyService::HIGH_URGENCY_ERROR, details_hash: nil) ⇒ Object



30
31
32
33
34
# File 'lib/nine_one_one.rb', line 30

def self.emergency(description, source: Socket.gethostname, dedup_key: nil,
                   severity: PagerDutyService::HIGH_URGENCY_ERROR, details_hash: nil)
  use(:default).emergency(description, source: source, dedup_key: dedup_key, severity: severity,
                                       details_hash: details_hash)
end

.emergency_serviceObject



48
49
50
# File 'lib/nine_one_one.rb', line 48

def self.emergency_service
  use(:default).emergency_service
end

.notification_serviceObject



44
45
46
# File 'lib/nine_one_one.rb', line 44

def self.notification_service
  use(:default).notification_service
end

.notify(message) ⇒ Object



40
41
42
# File 'lib/nine_one_one.rb', line 40

def self.notify(message)
  use(:default).notify(message)
end

.resolve_emergency(dedup_key) ⇒ Object



36
37
38
# File 'lib/nine_one_one.rb', line 36

def self.resolve_emergency(dedup_key)
  use(:default).resolve_emergency(dedup_key)
end

.use(type = :default) ⇒ Object



21
22
23
24
# File 'lib/nine_one_one.rb', line 21

def self.use(type = :default)
  config = configs.fetch(type) { raise NotConfiguredError, "Configuration type=#{type} is not configured." }
  Notifier.new(config)
end