module LazyApiDoc

Constants

VERSION

Public Class Methods

add(example) click to toggle source
# File lib/lazy_api_doc.rb, line 14
def self.add(example)
  generator.add(example)
end
add_spec(example) click to toggle source
# File lib/lazy_api_doc.rb, line 18
def self.add_spec(example) # rubocop:disable Metrics/AbcSize
  add(
    controller: example.request.params[:controller],
    action: example.request.params[:action],
    description: example.class.description,
    source_location: [example.class.metadata[:file_path], example.class.metadata[:line_number]],
    verb: example.request.method,
    params: example.request.params,
    content_type: example.request.content_type.to_s,
    request: {
      query_params: example.request.query_parameters,
      full_path: example.request.fullpath
    },
    response: {
      code: example.response.status,
      content_type: example.response.content_type.to_s,
      body: example.response.body
    }
  )
end
add_test(example) click to toggle source
# File lib/lazy_api_doc.rb, line 39
def self.add_test(example) # rubocop:disable Metrics/AbcSize
  add(
    controller: example.request.params[:controller],
    action: example.request.params[:action],
    description: example.name.gsub(/\Atest_/, '').humanize,
    source_location: example.method(example.name).source_location,
    verb: example.request.method,
    params: example.request.params,
    content_type: example.request.content_type.to_s,
    request: {
      query_params: example.request.query_parameters,
      full_path: example.request.fullpath
    },
    response: {
      code: example.response.status,
      content_type: example.response.content_type.to_s,
      body: example.response.body
    }
  )
end
generator() click to toggle source
# File lib/lazy_api_doc.rb, line 10
def self.generator
  @generator ||= Generator.new
end
save_result(to: 'public/lazy_api_doc/api.yml', layout: 'public/lazy_api_doc/layout.yml') click to toggle source
# File lib/lazy_api_doc.rb, line 60
def self.save_result(to: 'public/lazy_api_doc/api.yml', layout: 'public/lazy_api_doc/layout.yml')
  layout = YAML.safe_load(File.read(Rails.root.join(layout)))
  layout["paths"] ||= {}
  layout["paths"].merge!(generator.result)
  File.write(Rails.root.join(to), layout.to_yaml)
end