Class: JSON::Generator::Dereferencer

Inherits:
Object
  • Object
show all
Defined in:
lib/json/generator/dereferencer.rb

Class Method Summary collapse

Class Method Details

.dereference(schema) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/json/generator/dereferencer.rb', line 4

def self.dereference(schema)
  return schema unless schema.has_key?('properties')

  definitions = schema.delete('definitions')
  schema['properties'].each do |name, property|
    next unless property.has_key?('$ref')

    ref_name = property['$ref'].split('/').last
    raise NameError, "definition for #{ref_name} not found" unless definitions.has_key?(ref_name)

    property.merge!(definitions[ref_name])
    property.delete('$ref')
  end

  schema
end