Class: DecisionAgent::Dmn::Importer
- Inherits:
-
Object
- Object
- DecisionAgent::Dmn::Importer
- Defined in:
- lib/decision_agent/dmn/importer.rb
Overview
Imports DMN XML files into DecisionAgent
Instance Method Summary collapse
-
#import(file_path, ruleset_name: nil, created_by: "system") ⇒ Hash
Import DMN file.
-
#import_from_xml(xml_content, ruleset_name: nil, created_by: "system") ⇒ Object
Import from XML string.
-
#initialize(version_manager: nil) ⇒ Importer
constructor
A new instance of Importer.
Constructor Details
#initialize(version_manager: nil) ⇒ Importer
Returns a new instance of Importer.
12 13 14 |
# File 'lib/decision_agent/dmn/importer.rb', line 12 def initialize(version_manager: nil) @version_manager = version_manager || Versioning::VersionManager.new end |
Instance Method Details
#import(file_path, ruleset_name: nil, created_by: "system") ⇒ Hash
Import DMN file
21 22 23 24 |
# File 'lib/decision_agent/dmn/importer.rb', line 21 def import(file_path, ruleset_name: nil, created_by: "system") xml_content = File.read(file_path) import_from_xml(xml_content, ruleset_name: ruleset_name, created_by: created_by) end |
#import_from_xml(xml_content, ruleset_name: nil, created_by: "system") ⇒ Object
Import from XML string
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/decision_agent/dmn/importer.rb', line 27 def import_from_xml(xml_content, ruleset_name: nil, created_by: "system") # Parse DMN XML parser = Parser.new(xml_content) model = parser.parse # Validate model validator = Validator.new(model) validator.validate! # Convert to JSON rules results = convert_model_to_rules(model) # Store in versioning system versions = store_in_versioning(results, ruleset_name, created_by) { model: model, rules: results, versions: versions, decisions_imported: results.size } end |