class SoberSwag::Reporting::Compiler::Schema

Compile component schemas.

Attributes

references[R]

Hash of references to type definitions. Suitable for us as the components hash.

Public Class Methods

new() click to toggle source
# File lib/sober_swag/reporting/compiler.rb, line 7
def initialize
  @references = {}
  @referenced_schemas = Set.new
end

Public Instance Methods

compile(value) click to toggle source
# File lib/sober_swag/reporting/compiler.rb, line 17
def compile(value)
  compile_inner(value.swagger_schema)
end
compile_inner(value) click to toggle source
# File lib/sober_swag/reporting/compiler.rb, line 21
def compile_inner(value)
  initial, found = value

  merge_found(found)

  initial
end
merge_found(found) click to toggle source
# File lib/sober_swag/reporting/compiler.rb, line 29
def merge_found(found)
  found.each do |k, v|
    next unless @referenced_schemas.add?(k)

    @references[k] = compile_inner(v.call)
  end
end