Class: Manual::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/manual.rb

Class Method Summary collapse

Class Method Details

.initObject



20
21
22
# File 'lib/manual.rb', line 20

def init
  @pages = []
end

.record(example, context) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/manual.rb', line 33

def record(example, context)
  request = context.request
  response = context.response

  @pages << {
    scenario: {
      description: example.[:description],
    },
    request: {
      method: request.method,
      path: request.path,
      params: request.params
    },
    response: {
      status: response.status,
      body: JSON.parse(response.body)
    }
  }
end

.renderObject



24
25
26
27
28
29
30
31
# 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) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# 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