class Manual::Generator

Public Class Methods

init() click to toggle source
# File lib/manual.rb, line 20
def init
  @pages = []
end
record(example, context) click to toggle source
# File lib/manual.rb, line 33
def record(example, context)
  request = context.request
  response = context.response

  @pages << {
    scenario: {
      description: example.metadata[:description],
    },
    request: {
      method: request.method,
      path: request.path,
      params: request.params
    },
    response: {
      status: response.status,
      body: JSON.parse(response.body)
    }
  }
end
render() click to toggle source
# File lib/manual.rb, line 24
def render
  path = Rails.root.join("manual")
  Dir.mkdir(path) unless Dir.exists?(path)

  File.open(path.join("index.json"), 'w') do |file|
    file.write(@pages.to_json)
  end
end
setup(config) click to toggle source
# File lib/manual.rb, line 6
def setup(config)
  config.before(:all) do
    Manual::Generator.init
  end

  config.after(:each, manual: :record) do |example|
    Manual::Generator.record(example, self)
  end

  config.after(:all) do
    Manual::Generator.render
  end
end