Module: BrighterPlanet::Emitter

Defined in:
lib/emitter.rb

Defined Under Namespace

Modules: AssociationClassMethods, ClassMethods

Instance Method Summary collapse

Instance Method Details

#included(base) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/emitter.rb', line 11

def included(base)
  base.extend ClassMethods
  base.extend AssociationClassMethods if base.respond_to? :reflect_on_all_associations
  
  emitter_klass = self.to_s.split('::').last.underscore

  require "#{emitter_klass}/carbon_model"
  require "#{emitter_klass}/characterization"
  require "#{emitter_klass}/data"
  require "#{emitter_klass}/summarization"

  base.send :include, const_get('CarbonModel')
  base.send :include, const_get('Characterization')
  base.send :include, const_get('Data')
  base.send :include, const_get('Summarization')
end