class Apipie::Generator::Swagger::ResourceDescriptionsCollection

Public Class Methods

new(resource_descriptions) click to toggle source

@param [Hash{String->Apipie::ResourceDescription}] resource_descriptions

# File lib/apipie/generator/swagger/resource_description_collection.rb, line 3
def initialize(resource_descriptions)
  @resource_descriptions = resource_descriptions
end

Public Instance Methods

filter(version:, resource_id:, method_name: nil) click to toggle source

@return [Array<Apipie::ResourceDescription>]

# File lib/apipie/generator/swagger/resource_description_collection.rb, line 8
def filter(version:, resource_id:, method_name: nil)
  resources = []

  # If resource_id is blank, take just resources which have some methods because
  # we dont want to show eg ApplicationController as resource
  # otherwise, take only the specified resource
  @resource_descriptions[version].each do |resource_description_id, resource_description|
    if (resource_id.blank? && resource_description._methods.present?) || resource_description_id == resource_id
      resources << resource_description
    end
  end

  if method_name.present?
    resources = resources.select do |resource_description|
      resource_description._methods.select do |method_description_name, _|
        method_description_name == method_name
      end.present?
    end
  end

  resources
end