Class: Mihari::Structs::Config

Inherits:
Dry::Struct
  • Object
show all
Defined in:
lib/mihari/structs/config.rb

Class Method Summary collapse

Class Method Details

.from_class(klass) ⇒ Mihari::Structs::Config?

Returns config.

Parameters:

Returns:



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/mihari/structs/config.rb', line 16

def self.from_class(klass)
  return nil if klass == Mihari::Analyzers::Rule

  name = klass.to_s.split("::").last.to_s

  is_analyzer = klass.ancestors.include?(Mihari::Analyzers::Base)
  is_emitter = klass.ancestors.include?(Mihari::Emitters::Base)
  is_enricher = klass.ancestors.include?(Mihari::Enrichers::Base)

  type = "Analyzer"
  type = "Emitter" if is_emitter
  type = "Enricher" if is_enricher

  begin
    instance = is_analyzer ? klass.new("dummy") : klass.new
    is_configured = instance.configured?
    values = instance.configuration_values

    new(name: name, values: values, is_configured: is_configured, type: type)
  rescue ArgumentError => _e
    nil
  end
end