Sha256: e963cf995c3936236f58f17fb4a9fba765f763ad374a4c462792979e00fb5a19
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
# frozen_string_literal: true # find and require all check modules Gem.find_files('hcheck/checks/*.rb').each do |check_file| require "hcheck/checks/#{File.basename(check_file)}" end module Hcheck class Configuration # Main service class # One to one servcie class is created from hcheck.yml top level keys # includes corresponsing check module; which includes status method class Service attr_reader :name, :check_not_available NOT_IMPLEMENTED_MSG = 'Check not implemented for this service' def initialize(service, options) @name = service.to_s @check = options.delete('check') @options = options.symbolize_keys if mod = load_mod singleton_class.send(:include, mod) else @check_not_available = true end end def check { name: @name, desc: @check, status: @check_not_available ? NOT_IMPLEMENTED_MSG : check_status } end private def check_status status(@options) 'ok' rescue StandardError => e Hcheck.logger.error "[HCheck] #{e.class.name} #{e.message}" 'bad' end def load_mod Hcheck::Checks.const_get(@name.capitalize) rescue NameError nil end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hcheck-0.1.1 | lib/hcheck/configuration/service.rb |