class Mihari::Status
Public Class Methods
check()
click to toggle source
# File lib/mihari/status.rb, line 9 def self.check new.check end
Public Instance Methods
check()
click to toggle source
# File lib/mihari/status.rb, line 5 def check statuses end
Private Instance Methods
build_status(klass)
click to toggle source
Build a status of a class
@param [Class<Mihari::Analyzers::Base>, Class<Mihari::Emitters::Base>] klass
@return [Hash, nil]
# File lib/mihari/status.rb, line 35 def build_status(klass) return nil if klass == Mihari::Analyzers::Rule is_analyzer = klass.ancestors.include?(Mihari::Analyzers::Base) is_emitter = klass.ancestors.include?(Mihari::Emitters::Base) is_enricher = klass.ancestors.include?(Mihari::Enrichers::Base) instance = is_analyzer ? klass.new("dummy") : klass.new is_configured = instance.configured? values = instance.configuration_values type = "Analyzer" type = "Emitter" if is_emitter type = "Enricher" if is_enricher values ? { is_configured: is_configured, values: values, type: type } : nil rescue ArgumentError => _e nil end
statuses()
click to toggle source
Statuses of analyzers and emitters
@return [Array<Hash>]
# File lib/mihari/status.rb, line 20 def statuses (Mihari.analyzers + Mihari.emitters + Mihari.enrichers).map do |klass| name = klass.to_s.split("::").last.to_s [name, build_status(klass)] end.to_h.compact end