Class: Mxrb::Compiler::DomainModelMaterializer

Inherits:
Object
  • Object
show all
Defined in:
lib/mxrb/compiler/domain_model_materializer.rb

Overview

Replaces or inserts Runtime domain-model documents in model.mdp.

Instance Method Summary collapse

Constructor Details

#initialize(mpr_path, deployment:) ⇒ DomainModelMaterializer

Returns a new instance of DomainModelMaterializer.



9
10
11
12
# File 'lib/mxrb/compiler/domain_model_materializer.rb', line 9

def initialize(mpr_path, deployment:)
  @mpr_path = File.expand_path(mpr_path)
  @deployment = File.expand_path(deployment)
end

Instance Method Details

#materializeObject



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/mxrb/compiler/domain_model_materializer.rb', line 14

def materialize
  source = SourceModel.read(@mpr_path)
  Adapter.for(source.version)
  compiler = DomainDocumentCompiler.new(source)
  documents = source.units_of('DomainModels$DomainModel').map { compiler.compile(_1) }
  path = File.join(@deployment, 'model', 'model.mdp')
  write_model(path, documents)
  DomainModelMaterialization.new(
    model_path: path, domain_models: documents.length,
    entities: documents.sum { _1.fetch('Entities').length }
  )
end