class R2OAS::Schema::V3::PathsObject

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/paths_object.rb, line 11
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/paths_object.rb, line 21
def create_doc
  if unit_paths_file_path.present?
    unit_paths_data = YAML.load_file(unit_paths_file_path)['paths']
    result = unit_paths_data.each_with_object({}) do |(path, path_item_doc), docs|
      docs[path] = PathItemObject.new(path_item_doc, path, @opts).to_doc
    end
  else
    result = path_item_docs.each_with_object({}) do |(path, path_item_doc), docs|
      docs[path] = path_item_doc
    end
  end
  doc.merge!(result)
end
to_doc() click to toggle source
# File lib/r2-oas/schema/v3/object/from_routes/paths_object.rb, line 16
def to_doc
  create_doc
  doc
end

Private Instance Methods

path_item_docs() click to toggle source
# File lib/r2-oas/schema/v3/object/from_routes/paths_object.rb, line 37
def path_item_docs
  # e.x.)
  # [
  #  { path: "/tasks", data: {:verb=>"get", :path=>"/tasks", :tag_name=>"task" } },
  # ]
  @routes_data.each_with_object({}) do |(route_el), data|
    path = route_el[:path]
    route_data = route_el[:data]

    path_item_doc = PathItemObject.new(route_data, path, @opts).to_doc
    if data[path].present?
      data[path].merge!(path_item_doc)
    else
      data[path] = path_item_doc
    end
  end
end