class R2OAS::Schema::V3::ComponentsObject
Public Class Methods
new(routes_data, opts = {})
click to toggle source
Calls superclass method
R2OAS::Schema::V3::BaseObject::new
# File lib/r2-oas/schema/v3/object/from_routes/components_object.rb, line 12 def initialize(routes_data, opts = {}) super(opts) @routes_data = routes_data end
Public Instance Methods
create_doc()
click to toggle source
# File lib/r2-oas/schema/v3/object/from_routes/components_object.rb, line 22 def create_doc create_doc_for_components_schemas! create_doc_for_components_request_bodies! end
to_doc()
click to toggle source
# File lib/r2-oas/schema/v3/object/from_routes/components_object.rb, line 17 def to_doc create_doc doc end
Private Instance Methods
components_request_body_docs()
click to toggle source
# File lib/r2-oas/schema/v3/object/from_routes/components_object.rb, line 67 def components_request_body_docs @routes_data.each_with_object({}) do |(route_el), data| path = route_el[:path] route_data = route_el[:data] components_request_body_object = Components::RequestBodyObject.new(route_data, path, @opts) next unless components_request_body_object.generate? components_request_body_doc = components_request_body_object.to_doc schema_name = components_request_body_object.send(:_components_request_body_name) if data[schema_name].present? data[schema_name].merge!(components_request_body_doc) else data[schema_name] = components_request_body_doc end end end
components_schema_docs()
click to toggle source
e.x.) [
{ path: "/tasks", data: {:verb=>"get", :path=>"/tasks", :tag_name=>"task" } },
]
# File lib/r2-oas/schema/v3/object/from_routes/components_object.rb, line 47 def components_schema_docs @routes_data.each_with_object({}) do |(route_el), data| path = route_el[:path] route_data = route_el[:data] path_item_object = PathItemObject.new(route_data, path, @opts) path_item_object.http_statuses.each do |http_status| components_schema_object = Components::SchemaObject.new(route_data, path, @opts) components_schema_doc = components_schema_object.to_doc schema_name = components_schema_object.send(:_components_schema_name, http_status) if data[schema_name].present? data[schema_name].merge!(components_schema_doc) else data[schema_name] = components_schema_doc end end end end
create_doc_for_components_request_bodies!()
click to toggle source
# File lib/r2-oas/schema/v3/object/from_routes/components_object.rb, line 36 def create_doc_for_components_request_bodies! result = components_request_body_docs.each_with_object({}) do |(schema_name, components_request_body_doc), docs| docs[schema_name] = components_request_body_doc end doc.merge!({ 'requestBodies' => result }) end
create_doc_for_components_schemas!()
click to toggle source
# File lib/r2-oas/schema/v3/object/from_routes/components_object.rb, line 29 def create_doc_for_components_schemas! result = components_schema_docs.each_with_object({}) do |(schema_name, components_schema_doc), docs| docs[schema_name] = components_schema_doc end doc.merge!({ 'schemas' => result }) end