Class: EventEngine::ProcessingRules

Inherits:
Object
  • Object
show all
Defined in:
lib/event_engine/processing_rules.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(default: nil, packs: {}, events: {}) ⇒ ProcessingRules

Returns a new instance of ProcessingRules.



21
22
23
24
25
# File 'lib/event_engine/processing_rules.rb', line 21

def initialize(default: nil, packs: {}, events: {})
  @default = default
  @packs = packs
  @events = events
end

Class Method Details

.load(path) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/event_engine/processing_rules.rb', line 5

def self.load(path)
  return new unless File.exist?(path.to_s)

  contents = YAML.safe_load_file(path.to_s) || {}

  new(
    default: contents["default"]&.to_sym,
    packs: symbolize(contents["packs"]),
    events: symbolize(contents["events"])
  )
end

.symbolize(section) ⇒ Object



17
18
19
# File 'lib/event_engine/processing_rules.rb', line 17

def self.symbolize(section)
  (section || {}).to_h { |key, value| [ key.to_sym, value&.to_sym ] }
end

Instance Method Details

#any?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/event_engine/processing_rules.rb', line 31

def any?
  !@default.nil? || @packs.any? || @events.any?
end

#for(event_name:, pack:) ⇒ Object



27
28
29
# File 'lib/event_engine/processing_rules.rb', line 27

def for(event_name:, pack:)
  @events[event_name] || @packs[pack] || @default
end

#processor_namesObject



35
36
37
# File 'lib/event_engine/processing_rules.rb', line 35

def processor_names
  ([ @default ] + @packs.values + @events.values).compact.uniq
end