Class: Lutaml::Xsd::Schema

Inherits:
Model::Serializable
  • Object
show all
Defined in:
lib/lutaml/xsd/schema.rb

Overview

rubocop:disable Metrics/ClassLength

Class Method Summary collapse

Instance Method Summary collapse

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_progressObject



156
157
158
# File 'lib/lutaml/xsd/schema.rb', line 156

def in_progress
  @in_progress ||= []
end

.in_progress?(location) ⇒ Boolean

Returns:

  • (Boolean)


160
161
162
# File 'lib/lutaml/xsd/schema.rb', line 160

def in_progress?(location)
  in_progress.include?(location)
end

.processed_schemasObject



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_schemasObject



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

Returns:

  • (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