Class: Mxrb::DomainDiagram::LayoutWriter
- Inherits:
-
Object
- Object
- Mxrb::DomainDiagram::LayoutWriter
- Defined in:
- lib/mxrb/domain_diagram.rb
Overview
Applies only audited visual fields to a copied MPR.
Instance Method Summary collapse
- #apply!(payload) ⇒ Object
-
#initialize(path) ⇒ LayoutWriter
constructor
A new instance of LayoutWriter.
Constructor Details
#initialize(path) ⇒ LayoutWriter
Returns a new instance of LayoutWriter.
135 136 137 |
# File 'lib/mxrb/domain_diagram.rb', line 135 def initialize(path) @path = File.(path) end |
Instance Method Details
#apply!(payload) ⇒ Object
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
# File 'lib/mxrb/domain_diagram.rb', line 139 def apply!(payload) modules = Array(payload.fetch('modules')) mpr = IO::MprFile.open(@path, readonly: false) changed = 0 = [] mpr.transaction do module_units = mpr.units_by_containment('Modules').to_h do |unit| [mpr.parse_contents(unit)['Name'].to_s, unit] end modules.each do |layout| unit = module_units[layout.fetch('name').to_s] raise ValidationError, "domain module #{layout['name']} not found" unless unit module_changed, = apply_module(mpr, unit, layout) changed += module_changed .concat() end changed += mpr.write_domain_diagram_anchors() end changed ensure mpr&.close end |