Module: Upcheck::Registry

Extended by:
Registry
Included in:
Registry
Defined in:
lib/upcheck/registry.rb

Constant Summary collapse

BUILT_IN =
{
  anthropic: -> { Adapters::Statuspage.new("https://status.claude.com") },
  openai: -> { Adapters::Statuspage.new("https://status.openai.com") },
  github: -> { Adapters::Statuspage.new("https://www.githubstatus.com") },
  twilio: -> { Adapters::Statuspage.new("https://status.twilio.com") },
  datadog: -> { Adapters::Statuspage.new("https://status.datadoghq.com") },
  rubygems: -> { Adapters::Statuspage.new("https://status.rubygems.org") },
  cloudflare: -> { Adapters::Statuspage.new("https://www.cloudflarestatus.com") },
  discord: -> { Adapters::Statuspage.new("https://discordstatus.com") },
  digitalocean: -> { Adapters::Statuspage.new("https://status.digitalocean.com") },
  vercel: -> { Adapters::Statuspage.new("https://www.vercel-status.com") },
  stripe: -> { Adapters::Statuspage.new("https://www.stripestatus.com") },
  shopify: -> { Adapters::Statuspage.new("https://www.shopifystatus.com") },
  sentry: -> { Adapters::Statuspage.new("https://status.sentry.io") },
  heroku: -> { Adapters::Heroku.new }
}.freeze

Instance Method Summary collapse

Instance Method Details

#register_defaults(config) ⇒ Object



24
25
26
27
28
# File 'lib/upcheck/registry.rb', line 24

def register_defaults(config)
  BUILT_IN.each do |name, factory|
    config.register_provider(name, &factory)
  end
end

#resolve(name) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/upcheck/registry.rb', line 30

def resolve(name)
  factory = Upcheck.configuration.providers[name.to_sym]
  unless factory
    raise UnknownProviderError, "Unknown provider: #{name.inspect}. " \
      "Register it with Upcheck.configure { |c| c.register_provider(:name) { adapter } }."
  end

  factory.call
end