Class: Mxrb::Compiler::DeploymentMaterializer

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

Overview

Runs the complete native MPR-to-deployment model pipeline in dependency order.

Constant Summary collapse

STAGES =
[
  SecurityMaterializer, ConstantsMaterializer, DomainModelMaterializer,
  ArtifactMaterializer, TranslationMaterializer, SystemTextMaterializer,
  SystemQueueMaterializer, ClientModelMaterializer,
  CodeActionMaterializer, SettingsMaterializer, MicroflowMaterializer, ProjectMaterializer
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(mpr_path, deployment: nil, mendix_home: nil) ⇒ DeploymentMaterializer

Returns a new instance of DeploymentMaterializer.



16
17
18
19
20
# File 'lib/mxrb/compiler/deployment_materializer.rb', line 16

def initialize(mpr_path, deployment: nil, mendix_home: nil)
  @mpr_path = File.expand_path(mpr_path)
  @deployment = File.expand_path(deployment || File.join(File.dirname(@mpr_path), 'deployment'))
  @mendix_home = mendix_home
end

Instance Method Details

#materializeObject



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/mxrb/compiler/deployment_materializer.rb', line 22

def materialize
  source = SourceModel.read(@mpr_path)
  DeploymentBootstrapper.new(
    @mpr_path, deployment: @deployment, mendix_home: @mendix_home
  ).prepare
  Adapter.for(source.version).validate_deployment!(@deployment)
  results = materialize_stages
  DeploymentMaterialization.new(
    deployment: @deployment, mendix_version: source.version, stages: results.freeze
  )
end