Sha256: 928f90ab0f0dc55bad22d801bc68046fee6b30b1d3ed6dd55a7d3a776e5eb4f1

Contents?: true

Size: 1.28 KB

Versions: 41

Compression:

Stored size: 1.28 KB

Contents

# hash body object loader
class OpenAPIParser::SchemaLoader::HashBodyLoader < OpenAPIParser::SchemaLoader::Creator
  # @param [String] variable_name
  # @param [Hash] options
  def initialize(variable_name, options)
    super(variable_name, options)

    @reject_keys = options[:reject_keys] ? options[:reject_keys].map(&:to_s) : []
  end

  # @param [OpenAPIParser::Schemas::Base] target_object
  # @param [Hash] raw_schema
  # @return [Array<OpenAPIParser::Schemas::Base>, nil]
  def load_data(target_object, raw_schema)
    # raw schema always exist because if not exist' this object don't create
    create_hash_body_objects(target_object, raw_schema)
  end

  private

    # for responses and paths object
    def create_hash_body_objects(target_object, raw_schema)
      object_list = raw_schema.reject { |k, _| reject_keys.include?(k) }.map do |child_name, child_schema|
        ref = build_object_reference_from_base(target_object.object_reference, escape_reference(child_name))
        [
          child_name.to_s, # support string key only in OpenAPI3
          build_openapi_object_from_option(target_object, ref, child_schema),
        ]
      end

      objects = object_list.to_h
      variable_set(target_object, variable_name, objects)
      objects.values
    end

    attr_reader :reject_keys
end

Version data entries

41 entries across 41 versions & 2 rubygems

Version Path
openapi_parser-2.2.3 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-2.2.2 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-2.2.1 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-2.2.0 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-2.1.0 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-2.0.0 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser_firetail-1.0.0 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-1.0.0 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-1.0.0.beta1 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-0.15.0 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-0.14.1 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-0.14.0 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-0.13.0 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-0.12.1 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-0.12.0 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-0.11.2 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-0.11.1 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-0.11.0 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-0.10.0 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb
openapi_parser-0.9.0 lib/openapi_parser/concerns/schema_loader/hash_body_loader.rb