class OpenAPIParser::SchemaLoader

load data to target_object by schema definition in core

Attributes

children[R]

@!attribute [r] children

@return [Array<OpenAPIParser::Schemas::Base>]
core[R]
target_object[R]

Public Class Methods

new(target_object, core) click to toggle source

@param [OpenAPIParser::Schemas::Base] target_object @param [OpenAPIParser::Parser::Core] core

# File lib/openapi_parser/concerns/schema_loader.rb, line 16
def initialize(target_object, core)
  @target_object = target_object
  @core = core
  @children = {}
end

Public Instance Methods

load_data() click to toggle source

execute load data return data is equal to :children @return [Array<OpenAPIParser::Schemas::Base>]

# File lib/openapi_parser/concerns/schema_loader.rb, line 29
def load_data
  all_loader.each { |l| load_data_by_schema_loader(l) }
  children
end

Private Instance Methods

all_loader() click to toggle source
# File lib/openapi_parser/concerns/schema_loader.rb, line 51
def all_loader
  core._openapi_attr_values.values +
    core._openapi_attr_objects.values +
    core._openapi_attr_list_objects.values +
    core._openapi_attr_hash_objects.values +
    core._openapi_attr_hash_body_objects.values
end
load_data_by_schema_loader(schema_loader) click to toggle source

@param [OpenAPIParser::SchemaLoader::Base] schema_loader

# File lib/openapi_parser/concerns/schema_loader.rb, line 39
def load_data_by_schema_loader(schema_loader)
  children = schema_loader.load_data(target_object, target_object.raw_schema)

  children.each { |c| register_child(c) } if children
end
register_child(object) click to toggle source
# File lib/openapi_parser/concerns/schema_loader.rb, line 45
def register_child(object)
  return unless object.kind_of?(OpenAPIParser::Parser)

  @children[object.object_reference] = object
end