Sha256: 2b8b1183a83b321635cf7b94d9e1cac5296de23ca96f6dee5115a8daea7e7b9e

Contents?: true

Size: 1.51 KB

Versions: 12

Compression:

Stored size: 1.51 KB

Contents

module RspecApiDocs
  module Renderer
    class RaddocsRenderer
      class ResourceSerializer
        attr_reader :resource, :example

        def initialize(resource, example)
          @resource = resource
          @example = example
        end

        def to_h # rubocop:disable Metrics/AbcSize
          {
            resource: resource.name,
            resource_explanation: nil,
            http_method: example.http_method,
            route: example.path,
            description: example.name,
            explanation: example.description,
            parameters: parameters(example.parameters),
            response_fields: response_fields(example.response_fields),
            requests: requests,
          }
        end

        private

        def requests
          example.requests.map { |request| request.merge(curl: nil) }
        end

        def parameters(parameters)
          parameters.map do |parameter|
            result = {}
            result[:required] = true if parameter.required
            result[:scope] = parameter.scope.join
            result = result.merge(
              name: parameter.name,
              description: parameter.description,
            )
            result
          end
        end

        def response_fields(fields)
          fields.map do |field|
            {
              scope: field.scope.join,
              Type: field.type,
              name: field.name,
              description: field.description,
            }
          end
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rspec-api-docs-1.1.0 lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb
rspec-api-docs-1.0.0 lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb
rspec-api-docs-0.14.0 lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb
rspec-api-docs-0.13.0 lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb
rspec-api-docs-0.12.0 lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb
rspec-api-docs-0.11.0 lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb
rspec-api-docs-0.10.0 lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb
rspec-api-docs-0.9.0 lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb
rspec-api-docs-0.8.0 lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb
rspec-api-docs-0.7.0 lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb
rspec-api-docs-0.6.0 lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb
rspec-api-docs-0.5.0 lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb