Class: Mxrb::Compiler::CodeActionMaterializer
- Inherits:
-
Object
- Object
- Mxrb::Compiler::CodeActionMaterializer
- Defined in:
- lib/mxrb/compiler/code_action_materializer.rb
Overview
Materializes server and client action signatures into model.mdp.
Instance Method Summary collapse
-
#initialize(mpr_path, deployment:) ⇒ CodeActionMaterializer
constructor
A new instance of CodeActionMaterializer.
- #materialize ⇒ Object
Constructor Details
#initialize(mpr_path, deployment:) ⇒ CodeActionMaterializer
Returns a new instance of CodeActionMaterializer.
9 10 11 12 |
# File 'lib/mxrb/compiler/code_action_materializer.rb', line 9 def initialize(mpr_path, deployment:) @mpr_path = File.(mpr_path) @deployment = File.(deployment) end |
Instance Method Details
#materialize ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/mxrb/compiler/code_action_materializer.rb', line 14 def materialize source = SourceModel.read(@mpr_path) path = File.join(@deployment, 'model', 'model.mdp') documents = compile_documents(source) documents.reduce(ModelPackage.read(path)) { |package, document| package.upsert(document) }.write(path) counts = documents.map { _1['$Type'] }.tally CodeActionMaterialization.new( model_path: path, java_actions: counts.fetch('JavaActions$JavaAction', 0), javascript_actions: counts.fetch('JavaScriptActions$JavaScriptAction', 0) ) end |