Module: EventEngine::DefinitionLoader

Defined in:
lib/event_engine/definition_loader.rb

Class Method Summary collapse

Class Method Details

.load!(path) ⇒ Object



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

def self.load!(path)
  before_events = EventEngine::EventDefinition.subclasses
  before_lifecycles = EventEngine::LifecycleDefinition.subclasses
  require_ruby_files(path)

  declared_events = EventEngine::EventDefinition.subclasses - before_events
  new_lifecycles = EventEngine::LifecycleDefinition.subclasses - before_lifecycles

  declared_events + new_lifecycles.flat_map(&:generated_events)
end

.require_ruby_files(path) ⇒ Object



17
18
19
20
21
# File 'lib/event_engine/definition_loader.rb', line 17

def self.require_ruby_files(path)
  Dir.glob(File.join(path, "**", "*.rb")).sort.each do |file|
    require File.expand_path(file)
  end
end