Sha256: 92f7020893dc3d76c45a423a3338bb5aa6d0d3ff039a6fcae2f0432ec366e8ea
Contents?: true
Size: 1012 Bytes
Versions: 2
Compression:
Stored size: 1012 Bytes
Contents
# frozen_string_literal: true require_relative 'parser' module BrightSerializer module Entity class Base DEFAULT_DEFINITION = { type: :undefined }.freeze # https://swagger.io/specification/v2/?sbsearch=array%20response#schema-object def initialize(definition) @definition = definition end def to_h @definition.transform_keys! { |k| Inflector.camel_lower k.to_s } parse_ref! @definition end def parse_ref! object = nested_hash(@definition, 'ref') return unless object ref_entity_name = Inflector.constantize(object.delete('ref')).entity_name relation = "#/definitions/#{ref_entity_name}" object['$ref'] = relation end def nested_hash(obj, key) if obj.respond_to?(:key?) && obj.key?(key) obj elsif obj.respond_to?(:each) r = nil obj.find { |*a| r = nested_hash(a.last, key) } r end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bright_serializer-0.2.1 | lib/bright_serializer/entity/base.rb |
bright_serializer-0.2.0 | lib/bright_serializer/entity/base.rb |