Module: OpenapiRuby::Core::RefResolver
- Defined in:
- lib/openapi_ruby/core/ref_resolver.rb
Class Method Summary collapse
- .ref?(value) ⇒ Boolean
- .ref_object(component_type, name) ⇒ Object
- .ref_path(component_type, name) ⇒ Object
- .resolve(ref_string, document) ⇒ Object
Class Method Details
.ref?(value) ⇒ Boolean
16 17 18 |
# File 'lib/openapi_ruby/core/ref_resolver.rb', line 16 def ref?(value) value.is_a?(Hash) && value.key?("$ref") end |
.ref_object(component_type, name) ⇒ Object
12 13 14 |
# File 'lib/openapi_ruby/core/ref_resolver.rb', line 12 def ref_object(component_type, name) {"$ref" => ref_path(component_type, name)} end |
.ref_path(component_type, name) ⇒ Object
8 9 10 |
# File 'lib/openapi_ruby/core/ref_resolver.rb', line 8 def ref_path(component_type, name) "#/components/#{component_type}/#{name}" end |
.resolve(ref_string, document) ⇒ Object
20 21 22 23 |
# File 'lib/openapi_ruby/core/ref_resolver.rb', line 20 def resolve(ref_string, document) path = ref_string.delete_prefix("#/").split("/") path.reduce(document) { |node, segment| node&.dig(segment) } end |