class RspecApiDocumentation::Example

Attributes

configuration[R]
example[R]

Public Class Methods

new(example, configuration) click to toggle source
# File lib/rspec_api_documentation/example.rb, line 5
def initialize(example, configuration)
  @example = example
  @configuration = configuration
end

Public Instance Methods

explanation() click to toggle source
# File lib/rspec_api_documentation/example.rb, line 53
def explanation
  metadata[:explanation] || nil
end
has_attributes?() click to toggle source
# File lib/rspec_api_documentation/example.rb, line 41
def has_attributes?
  respond_to?(:attributes) && attributes.present?
end
has_parameters?() click to toggle source
# File lib/rspec_api_documentation/example.rb, line 37
def has_parameters?
  respond_to?(:parameters) && parameters.present?
end
has_response_fields?() click to toggle source
# File lib/rspec_api_documentation/example.rb, line 45
def has_response_fields?
  respond_to?(:response_fields) && response_fields.present?
end
http_method() click to toggle source
# File lib/rspec_api_documentation/example.rb, line 22
def http_method
  metadata[:method].to_s.upcase
end
method_missing(method_sym, *args, &block) click to toggle source
# File lib/rspec_api_documentation/example.rb, line 10
def method_missing(method_sym, *args, &block)
  if example.metadata.has_key?(method_sym)
    example.metadata[method_sym]
  else
    example.send(method_sym, *args, &block)
  end
end
public?() click to toggle source
# File lib/rspec_api_documentation/example.rb, line 33
def public?
  metadata[:public]
end
requests() click to toggle source
# File lib/rspec_api_documentation/example.rb, line 57
def requests
  filter_headers(metadata[:requests]) || []
end
resource_explanation() click to toggle source
# File lib/rspec_api_documentation/example.rb, line 49
def resource_explanation
  metadata[:resource_explanation] || nil
end
respond_to?(method_sym, include_private = false) click to toggle source
Calls superclass method
# File lib/rspec_api_documentation/example.rb, line 18
def respond_to?(method_sym, include_private = false)
  super || example.metadata.has_key?(method_sym) || example.respond_to?(method_sym, include_private)
end
should_document?() click to toggle source
# File lib/rspec_api_documentation/example.rb, line 26
def should_document?
  return false if pending? || !metadata[:resource_name] || !metadata[:document]
  return false if (Array(metadata[:document]) & Array(configuration.exclusion_filter)).length > 0
  return true if (Array(metadata[:document]) & Array(configuration.filter)).length > 0
  return true if configuration.filter == :all
end

Private Instance Methods

filter_headers(requests) click to toggle source
# File lib/rspec_api_documentation/example.rb, line 63
def filter_headers(requests)
  requests = remap_headers(requests, :request_headers, configuration.request_headers_to_include)
  requests = remap_headers(requests, :response_headers, configuration.response_headers_to_include)
  requests
end
remap_headers(requests, key, headers_to_include) click to toggle source
# File lib/rspec_api_documentation/example.rb, line 69
def remap_headers(requests, key, headers_to_include)
  return requests unless headers_to_include
  requests.each.with_index do |request_hash, index|
    next unless request_hash.key?(key)
    headers = request_hash[key]
    request_hash[key] = headers.select{ |key, _| headers_to_include.map(&:downcase).include?(key.downcase) }
    requests[index] = request_hash
  end
end