Sha256: c755ad76b0c94d7b1fde6fd142ff5f8ede4fe5877f1c589bd34152164c377ea6

Contents?: true

Size: 1.32 KB

Versions: 9

Compression:

Stored size: 1.32 KB

Contents

class Apipie::Generator::Swagger::ResourceDescriptionComposite
  # @param [Array<Apipie::ResourceDescription>] resource_descriptions
  def initialize(resource_descriptions, language:)
    @resource_descriptions = resource_descriptions
    @language = language
  end

  # @return [Hash{Symbol->Array | Hash}]
  def to_swagger
    {
      tags: tags,
      paths: paths
    }
  end

  # @return [Array]
  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

  # @return [Hash]
  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
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
apipie-rails-1.4.1 lib/apipie/generator/swagger/resource_description_composite.rb
apipie-rails-1.4.0 lib/apipie/generator/swagger/resource_description_composite.rb
apipie-rails-1.3.0 lib/apipie/generator/swagger/resource_description_composite.rb
apipie-rails-1.2.3 lib/apipie/generator/swagger/resource_description_composite.rb
apipie-rails-1.2.2 lib/apipie/generator/swagger/resource_description_composite.rb
apipie-rails-1.2.1 lib/apipie/generator/swagger/resource_description_composite.rb
apipie-rails-1.2.0 lib/apipie/generator/swagger/resource_description_composite.rb
apipie-rails-1.1.0 lib/apipie/generator/swagger/resource_description_composite.rb
apipie-rails-1.0.0 lib/apipie/generator/swagger/resource_description_composite.rb