Module: Support::DomainObject

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

Constant Summary collapse

TYPES =
%w[services invariants factories].freeze
LOADERS =
[
  Support::Factories::FactoryLoader, Support::Invariants::InvariantLoader
].freeze

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



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

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

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

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