Class: Lutaml::Xsd::Schema
- Inherits:
-
Model::Serializable
- Object
- Model::Serializable
- Lutaml::Xsd::Schema
- Defined in:
- lib/lutaml/xsd/schema.rb
Overview
rubocop:disable Metrics/ClassLength
Class Method Summary collapse
- .add_in_progress(location) ⇒ Object
- .in_progress ⇒ Object
- .in_progress?(location) ⇒ Boolean
- .processed_schemas ⇒ Object
- .remove_in_progress(location) ⇒ Object
- .reset_processed_schemas ⇒ Object
- .schema_processed(location, schema) ⇒ Object
- .schema_processed?(location) ⇒ Boolean
Instance Method Summary collapse
- #import_from_schema(model, value) ⇒ Object
- #import_to_schema(model, parent, _doc) ⇒ Object
- #include_from_schema(model, value) ⇒ Object
- #include_to_schema(model, parent, _doc) ⇒ Object
Class Method Details
.add_in_progress(location) ⇒ Object
164 165 166 |
# File 'lib/lutaml/xsd/schema.rb', line 164 def add_in_progress(location) in_progress << location end |
.in_progress ⇒ Object
156 157 158 |
# File 'lib/lutaml/xsd/schema.rb', line 156 def in_progress @in_progress ||= [] end |
.in_progress?(location) ⇒ Boolean
160 161 162 |
# File 'lib/lutaml/xsd/schema.rb', line 160 def in_progress?(location) in_progress.include?(location) end |
.processed_schemas ⇒ Object
142 143 144 |
# File 'lib/lutaml/xsd/schema.rb', line 142 def processed_schemas @processed_schemas ||= {} end |
.remove_in_progress(location) ⇒ Object
168 169 170 |
# File 'lib/lutaml/xsd/schema.rb', line 168 def remove_in_progress(location) in_progress.delete(location) end |
.reset_processed_schemas ⇒ Object
138 139 140 |
# File 'lib/lutaml/xsd/schema.rb', line 138 def reset_processed_schemas @processed_schemas = {} end |
.schema_processed(location, schema) ⇒ Object
150 151 152 153 154 |
# File 'lib/lutaml/xsd/schema.rb', line 150 def schema_processed(location, schema) return if location.nil? processed_schemas[location] = schema end |
.schema_processed?(location) ⇒ Boolean
146 147 148 |
# File 'lib/lutaml/xsd/schema.rb', line 146 def schema_processed?(location) processed_schemas[location] end |
Instance Method Details
#import_from_schema(model, value) ⇒ Object
59 60 61 62 63 |
# File 'lib/lutaml/xsd/schema.rb', line 59 def import_from_schema(model, value) value.each do |schema| setup_import_and_include("import", model, schema, namespace: schema.attributes["namespace"].value) end end |
#import_to_schema(model, parent, _doc) ⇒ Object
65 66 67 68 69 70 71 72 |
# File 'lib/lutaml/xsd/schema.rb', line 65 def import_to_schema(model, parent, _doc) return if model.imported model.imported = true model.imports.each do |imported_schema| parent.add_child(imported_schema.to_xml) end end |
#include_from_schema(model, value) ⇒ Object
74 75 76 77 78 |
# File 'lib/lutaml/xsd/schema.rb', line 74 def include_from_schema(model, value) value.each do |schema| setup_import_and_include("include", model, schema) end end |
#include_to_schema(model, parent, _doc) ⇒ Object
80 81 82 83 84 85 86 87 |
# File 'lib/lutaml/xsd/schema.rb', line 80 def include_to_schema(model, parent, _doc) return if model.included model.included = true model.includes.each do |schema_hash| parent.add_child(schema_hash.to_xml) end end |