Sha256: a82484cadda248a6a5a8455e3ddbf47ec8521abe103dbaed4b05610d159fb9cf
Contents?: true
Size: 1.12 KB
Versions: 1
Compression:
Stored size: 1.12 KB
Contents
module Diagnostics class Check def self.add(name, &block) Diagnostics.checks << check = new(name, &block) check end def self.find(name) Diagnostics.checks.select {|c| c.name == name }[0] end attr_reader :name def initialize(name, &block) @name = name instance_eval(&block) if block end def passed(&block) @passed_block = block end def warning(&block) @warning_block = block end def failed(&block) @failed_block = block end def passed? @passed_block_result ||= call_block(@passed_block) end def warning? @warning_block_result ||= call_block(@warning_block) end def failed? @failed_block_result ||= call_block(@failed_block) end def status return :passed if passed? return :warning if warning? return :failed if failed? :none end def data block_given? ? yield(data_group) : data_group end private def data_group @data_group ||= DataGroup.new end def call_block(block) block ? block.call : false end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
diagnostics-0.0.2 | lib/diagnostics/check.rb |