Module: Support::Root

Defined in:
lib/hecks/domain/templates/lib/support/root.rb

Constant Summary collapse

TYPES =
%w[commands services invariants queries events subscribers].freeze
LOADERS =
[
  Support::Commands::CommandLoader, Support::Queries::QueryLoader,
  Support::Repositories::RepositoryLoader
].freeze

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/hecks/domain/templates/lib/support/root.rb', line 10

def self.included(base)
  path = [
    '../../domain',
    base.to_s.split('::')[-2].underscore.downcase,
    base.to_s.split('::')[-1].underscore.downcase
  ].join('/')

  require_relative path + '/repository'

  TYPES.each do |name|
    Dir[File.dirname(__FILE__) + "/#{path}/" + name + '/*.rb']
      .each { |file| require_relative file }
  end

  LOADERS.each { |loader| base.include(loader) }
end