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