class RspecApiDocs::Renderer::RaddocsRenderer::ResourceSerializer

Attributes

example[R]
resource[R]

Public Class Methods

new(resource, example) click to toggle source
# File lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb, line 7
def initialize(resource, example)
  @resource = resource
  @example = example
end

Public Instance Methods

to_h() click to toggle source
# File lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb, line 12
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 Instance Methods

parameters(parameters) click to toggle source
# File lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb, line 32
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
requests() click to toggle source
# File lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb, line 28
def requests
  example.requests.map { |request| request.merge(curl: nil) }
end
response_fields(fields) click to toggle source
# File lib/rspec_api_docs/formatter/renderer/raddocs_renderer/resource_serializer.rb, line 45
def response_fields(fields)
  fields.map do |field|
    {
      scope: field.scope.join,
      Type: field.type,
      name: field.name,
      description: field.description,
    }
  end
end