Class: Mxrb::Compiler::SecurityMaterializer

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

Overview

Compiles project-security units into the flattened Runtime model shape.

Instance Method Summary collapse

Constructor Details

#initialize(mpr_path, deployment:) ⇒ SecurityMaterializer

Returns a new instance of SecurityMaterializer.



11
12
13
14
# File 'lib/mxrb/compiler/security_materializer.rb', line 11

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

Instance Method Details

#materializeObject



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

def materialize
  model_path = File.join(@deployment, 'model', 'model.mdp')
   = File.join(@deployment, 'model', 'metadata.json')
  source = source_security
  compiled,  = compile(source)
  ModelPackage.read(model_path).upsert(compiled).write(model_path)
  (, source, )
  SecurityMaterialization.new(model_path:, metadata_path:, roles: .freeze)
end