class HealthInspector::Services::Base

Attributes

configuration[RW]

Public Class Methods

new() click to toggle source
# File lib/health_inspector/services/base.rb, line 8
def initialize
  service_name = self.class.slug
  config_data = ServiceLoader.services.fetch(service_name, {})
  config_path = config_data.fetch('config_path', nil)
  configs = config_data.fetch('config', {})
  @configuration = if !configs.empty?
                     configs
                   elsif !config_path.nil?
                     config_full_path = "#{Dir.pwd}/#{config_path}"
                     if File.exist?(config_full_path)
                       YAML.safe_load(ERB.new(File.read(@path)).result)
                     end
  end
  @configuration ||= {}
  if @configuration.empty? || !@configuration.is_a?(Hash)
    raise ConfigurationMissingError, "No config provided for #{service_name}"
  end
end
slug() click to toggle source
# File lib/health_inspector/services/base.rb, line 27
def self.slug
  to_s.split('::').last.downcase
end

Public Instance Methods

inspect!() click to toggle source
# File lib/health_inspector/services/base.rb, line 31
def inspect!
  raise NotImplementedError
end