Class: Mihari::Structs::Config

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#is_configuredBoolean (readonly)

Returns:

  • (Boolean)


16
# File 'lib/mihari/structs/config.rb', line 16

attribute :configured, Types::Bool

#nameString (readonly)

Returns:

  • (String)


8
# File 'lib/mihari/structs/config.rb', line 8

attribute :name, Types::String

#typeString (readonly)

Returns:

  • (String)


12
# File 'lib/mihari/structs/config.rb', line 12

attribute :type, Types::String

#valuesArray<Hash>? (readonly)

Returns:

  • (Array<Hash>, nil)


20
# File 'lib/mihari/structs/config.rb', line 20

attribute :items, Types.Array(Types::Hash).optional

Class Method Details

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

Returns config.

Parameters:

Returns:



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/mihari/structs/config.rb', line 46

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

  return nil if klass.type.nil?

  begin
    instance = get_dummy(klass)
    new(
      name: klass.key,
      items: klass.configuration_items,
      configured: instance.configured?,
      type: klass.type
    )
  rescue ArgumentError
    nil
  end
end

.get_dummy(klass) ⇒ Mihari::Analyzers::Base, ...

Get a dummy instance

Parameters:

Returns:



30
31
32
33
34
35
36
37
38
39
# File 'lib/mihari/structs/config.rb', line 30

def get_dummy(klass)
  case klass.type
  when "analyzer"
    klass.new("dummy")
  when "emitter"
    klass.new(rule: nil)
  else
    klass.new
  end
end