Class: Mxrb::Compiler::ProjectMaterializer

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

Overview

Rebuilds the Runtime project/module index after native document materialization.

Constant Summary collapse

EDITORIAL_TYPES =

rubocop:disable Metrics/ClassLength

%w[
  Projects$ModuleSettings Security$ModuleSecurity Folders$Folder Projects$Folder
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(mpr_path, deployment:) ⇒ ProjectMaterializer

Returns a new instance of ProjectMaterializer.



15
16
17
18
# File 'lib/mxrb/compiler/project_materializer.rb', line 15

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

Instance Method Details

#materializeObject



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

def materialize
  source = SourceModel.read(@mpr_path)
  path = File.join(@deployment, 'model', 'model.mdp')
  package = ModelPackage.read(path)
  project = compile_project(source, package, project_unit(source))
  package = write_modules(source, package)
  package = package.upsert(project)
  package = ensure_deployment_header(package, source)
  package = ProjectModelOrderer.new(package, project).order
  package.write(path)
  result(path, project)
end