class Apipie::Generator::Swagger::ResourceDescriptionComposite

Public Class Methods

new(resource_descriptions, language:) click to toggle source

@param [Array<Apipie::ResourceDescription>] resource_descriptions

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

Public Instance Methods

paths() click to toggle source

@return [Hash]

# File lib/apipie/generator/swagger/resource_description_composite.rb, line 36
def paths
  results = {}

  @resource_descriptions.each do |resource_description|
    resource_description._methods.each_value do |method_description|
      next unless method_description.show

      result = Apipie::Generator::Swagger::MethodDescription::ApiSchemaService
               .new(
                 Apipie::Generator::Swagger::MethodDescription::Decorator.new(method_description),
                 language: @language
               )
               .call

      results.deep_merge!(result)
    end
  end

  results
end
tags() click to toggle source

@return [Array]

# File lib/apipie/generator/swagger/resource_description_composite.rb, line 17
def tags
  results = []

  @resource_descriptions.each do |resource_description|
    next unless resource_description._full_description

    results << {
      name: resource_description._id,
      description: Apipie.app.translate(
        resource_description._full_description,
        @language
      )
    }
  end

  results
end
to_swagger() click to toggle source

@return [Hash{Symbol->Array | Hash}]

# File lib/apipie/generator/swagger/resource_description_composite.rb, line 9
def to_swagger
  {
    tags: tags,
    paths: paths
  }
end