reqres_rspec 0.0.15 → 0.0.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +71 -15
- data/Rakefile +1 -1
- data/lib/reqres_rspec.rb +6 -3
- data/lib/reqres_rspec/collector.rb +14 -4
- data/lib/reqres_rspec/version.rb +1 -1
- data/lib/reqres_rspec/writers/html.rb +28 -2
- data/lib/reqres_rspec/writers/templates/header.erb +1 -1
- data/lib/reqres_rspec/writers/templates/index.erb +24 -0
- data/lib/reqres_rspec/writers/templates/panel.erb +108 -0
- data/lib/reqres_rspec/writers/templates/spec.erb +29 -26
- data/reqres_rspec.gemspec +10 -8
- metadata +26 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6aa9c6c95beaf16c80ee51d0578c483c385683f
|
4
|
+
data.tar.gz: 1906b7f8701dc21badcbfc7c0353ef506a289dec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff896169c1336ae45ec127cd22e8c7df6d25c837a3d1781efba46572209a12af74c23da1fd635ce5fa1fd3b88dd5e0e4148aac85fe48912e6d83f03d8021ceaf
|
7
|
+
data.tar.gz: 8ed9a4b7f53867fd4ec4e1d9b199843ce01f7ece0ac864214ab5c569e502706db1e37afc6f1e532c8e53e22c245a99238e51c20f1a886a823803601e747c3f9f
|
data/README.md
CHANGED
@@ -1,28 +1,26 @@
|
|
1
1
|
# ReqresRspec
|
2
2
|
|
3
|
-
Gem generates API documentation from your integration tests written with `rspec`.
|
3
|
+
Gem generates API documentation from your integration tests written with `rspec`.
|
4
|
+
|
5
|
+
No additional DSL needed. Beside covering rspec tests, documentation may be extended with API controller action comments in `yardoc` style.
|
6
|
+
|
7
|
+
Documentation is generated in JSON, YAML, HTML, PDF formats.
|
4
8
|
|
5
9
|
## Installation
|
6
10
|
|
7
|
-
### Gem
|
11
|
+
### 1) Gem
|
8
12
|
|
9
|
-
|
13
|
+
Just add this gem to `Gemfile` of your API Application
|
10
14
|
|
11
|
-
gem 'reqres_rspec'
|
15
|
+
gem 'reqres_rspec', group: :test
|
12
16
|
|
13
17
|
And then execute:
|
14
18
|
|
15
19
|
$ bundle
|
16
20
|
|
17
|
-
|
18
|
-
|
19
|
-
$ gem install reqres_rspec
|
21
|
+
### 2) PDF generator
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
-
Install `prince` http://www.princexml.com/download/
|
24
|
-
|
25
|
-
For MacOS this will be
|
23
|
+
Install `prince` http://www.princexml.com/download/ . For MacOS installation commands are
|
26
24
|
|
27
25
|
```
|
28
26
|
wget http://www.princexml.com/download/prince-9.0r2-macosx.tar.gz
|
@@ -33,17 +31,75 @@ cd prince-9.0r2-macosx
|
|
33
31
|
|
34
32
|
## Usage
|
35
33
|
|
34
|
+
by default `reqres_rspec` is not active (this may be configured!). To activate it, run `rspec` with
|
35
|
+
|
36
|
+
`REQRES_RSPEC=1 bundle exec rspec`
|
37
|
+
|
38
|
+
Documentation will be put into your application's `/doc` folder
|
39
|
+
|
36
40
|
### Sample controller action
|
37
41
|
|
38
|
-
|
42
|
+
```ruby
|
43
|
+
# @description creates Category from given parameters
|
44
|
+
# description text may be multiline
|
45
|
+
# @params category[title] required String Category title
|
46
|
+
# @params category[weight] in which order Category will be shown
|
47
|
+
# param text may also be multiline
|
48
|
+
def create
|
49
|
+
category = Category.new(create_category_params)
|
50
|
+
|
51
|
+
if category.save
|
52
|
+
render json: { category: category }.to_json, status: 201
|
53
|
+
else
|
54
|
+
render json: { errors: category.errors.full_messages }, status: 422
|
55
|
+
end
|
56
|
+
end
|
57
|
+
```
|
58
|
+
|
59
|
+
Description param text is started with `@description` and may be multiline.
|
60
|
+
Each param text is started with `@params` and first word will be param name, then optionally `required`, then optionally type (`Integer`, `String` etc), and finally param description, which may be multiline as well.
|
39
61
|
|
40
62
|
### Sample rspec test
|
41
63
|
|
42
|
-
|
64
|
+
```ruby
|
65
|
+
describe 'Create' do
|
66
|
+
it 'creates category' do
|
67
|
+
post :create, category: { name: 'Cookies' }
|
68
|
+
...
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'some other example', collect_for_doc: false do
|
72
|
+
...
|
73
|
+
end
|
74
|
+
end
|
75
|
+
```
|
76
|
+
|
77
|
+
By default all examples will be added to docs. Example may be excluded from docs with option `collect_for_doc: false`
|
78
|
+
|
79
|
+
Doc will use full example description, as a title for each separate spec
|
43
80
|
|
44
81
|
### Generates documentation example
|
45
82
|
|
46
|
-
|
83
|
+
[![Generated Doc](http://i44.tinypic.com/kda1pw.png)](http://i44.tinypic.com/kda1pw.png)
|
84
|
+
[![Generated Doc](http://i39.tinypic.com/2w3p6vl.png)](http://i39.tinypic.com/2w3p6vl.png)
|
85
|
+
|
86
|
+
Documentation is written in HTML format, which then converted to PDF. PDF files are textual, support search and have internal navigation links
|
87
|
+
|
88
|
+
## Configuration
|
89
|
+
|
90
|
+
TODO: Write instruction on gem configuration
|
91
|
+
|
92
|
+
## Future plans
|
93
|
+
|
94
|
+
1) Write documentation in YAML, JSON formats
|
95
|
+
|
96
|
+
2) Add configuration (folders with API specs, default generate spec for all examples, or opt-in generation)
|
97
|
+
|
98
|
+
3) Cover with tests
|
99
|
+
|
100
|
+
4) Remove dependency on `rails`
|
101
|
+
|
102
|
+
5) Add demo for `Rails`, `Rails API`, `Sinatra`
|
47
103
|
|
48
104
|
## Contributing
|
49
105
|
|
data/Rakefile
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
data/lib/reqres_rspec.rb
CHANGED
@@ -10,9 +10,12 @@ if defined?(RSpec) && ENV['REQRES_RSPEC'] == '1'
|
|
10
10
|
config.after(:each) do
|
11
11
|
# TODO: remove boilerplate code
|
12
12
|
# TODO: better options
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
meta_data = self.class.example.metadata
|
14
|
+
if meta_data[:type] == :request
|
15
|
+
begin
|
16
|
+
collector.collect(self, self.request, self.response) unless meta_data[:skip_reqres] == true
|
17
|
+
rescue NameError
|
18
|
+
raise $!
|
16
19
|
end
|
17
20
|
end
|
18
21
|
end
|
@@ -50,9 +50,17 @@ module ReqresRspec
|
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
+
ex_gr = spec.class.example.metadata[:example_group]
|
54
|
+
section = ex_gr[:description]
|
55
|
+
while !ex_gr.nil? do
|
56
|
+
section = ex_gr[:description]
|
57
|
+
ex_gr = ex_gr[:parent_example_group]
|
58
|
+
end
|
59
|
+
|
53
60
|
self.records << {
|
54
|
-
|
55
|
-
|
61
|
+
group: section, # Top level example group
|
62
|
+
title: spec.class.example.full_description,
|
63
|
+
description: spec.class.description,
|
56
64
|
params: params,
|
57
65
|
request_path: get_symbolized_path(request),
|
58
66
|
request: {
|
@@ -155,8 +163,10 @@ module ReqresRspec
|
|
155
163
|
|
156
164
|
comment_lines.reverse
|
157
165
|
else
|
158
|
-
'not found'
|
166
|
+
['not found']
|
159
167
|
end
|
168
|
+
rescue Errno::ENOENT
|
169
|
+
['not found']
|
160
170
|
end
|
161
171
|
|
162
172
|
# returns description action comments
|
@@ -217,4 +227,4 @@ module ReqresRspec
|
|
217
227
|
params
|
218
228
|
end
|
219
229
|
end
|
220
|
-
end
|
230
|
+
end
|
data/lib/reqres_rspec/version.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'coderay'
|
2
|
+
|
1
3
|
module ReqresRspec
|
2
4
|
module Writers
|
3
5
|
class Html
|
@@ -10,6 +12,9 @@ module ReqresRspec
|
|
10
12
|
cleanup
|
11
13
|
generate_header
|
12
14
|
generate_specs
|
15
|
+
|
16
|
+
append_index
|
17
|
+
append_panel
|
13
18
|
end
|
14
19
|
|
15
20
|
private
|
@@ -27,6 +32,8 @@ module ReqresRspec
|
|
27
32
|
# TODO: more info
|
28
33
|
def cleanup
|
29
34
|
FileUtils.rm_rf(Dir.glob("#{Rails.root}/doc/rspec_doc_*.html"), secure: true)
|
35
|
+
FileUtils.rm_rf(Dir.glob("#{Rails.root}/doc/index.html"), secure: true)
|
36
|
+
FileUtils.rm_rf(Dir.glob("#{Rails.root}/doc/panel.html"), secure: true)
|
30
37
|
end
|
31
38
|
|
32
39
|
# generates contents of HTML docs
|
@@ -53,13 +60,32 @@ module ReqresRspec
|
|
53
60
|
|
54
61
|
rendered_doc = ERB.new(File.open(tpl_path).read).result(binding)
|
55
62
|
|
56
|
-
path = File.join(Rails.root, 'doc', "rspec_doc_#{
|
63
|
+
path = File.join(Rails.root, 'doc', "rspec_doc_#{@index.to_s.rjust(5, '0') }.html")
|
57
64
|
file = File.open(path, 'w')
|
58
65
|
file.write(rendered_doc)
|
59
66
|
file.close
|
60
67
|
puts "Reqres::Writers::Html saved doc spec to #{path}"
|
61
68
|
end
|
62
69
|
end
|
70
|
+
|
71
|
+
# creates an index file with iframes if does not exists
|
72
|
+
def append_index
|
73
|
+
index_file = File.join(Rails.root, 'doc', 'index.html')
|
74
|
+
unless File.exists?(index_file)
|
75
|
+
tpl_path = File.join(File.dirname(__FILE__), 'templates', 'index.erb')
|
76
|
+
rendered_doc = ERB.new(File.open(tpl_path).read).result(binding)
|
77
|
+
File.write index_file, rendered_doc
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def append_panel
|
82
|
+
index_file = File.join(Rails.root, 'doc', 'panel.html')
|
83
|
+
unless File.exists?(index_file)
|
84
|
+
tpl_path = File.join(File.dirname(__FILE__), 'templates', 'panel.erb')
|
85
|
+
rendered_doc = ERB.new(File.open(tpl_path).read).result(binding)
|
86
|
+
File.write index_file, rendered_doc
|
87
|
+
end
|
88
|
+
end
|
63
89
|
end
|
64
90
|
end
|
65
|
-
end
|
91
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title><%= Rails.application.class.to_s.sub('::Application', '') %> API Documentation</title>
|
5
|
+
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
|
6
|
+
<link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
|
7
|
+
<link href='http://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'>
|
8
|
+
<style type="text/css">
|
9
|
+
body {
|
10
|
+
margin:0;
|
11
|
+
padding:0;
|
12
|
+
border:0;
|
13
|
+
width:100%;
|
14
|
+
background:#fff;
|
15
|
+
min-width:600px;
|
16
|
+
font-size:90%;
|
17
|
+
}
|
18
|
+
</style>
|
19
|
+
</head>
|
20
|
+
<frameset cols="350,*" frameborder="1" border="1" bordercolor="#999999" framespacing="1">
|
21
|
+
<frame name="panel" src="./panel.html">
|
22
|
+
<frame name="specs" src="./rspec_doc_00000.html">
|
23
|
+
</frameset>
|
24
|
+
</html>
|
@@ -0,0 +1,108 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title><%= Rails.application.class.to_s.sub('::Application', '') %> API Documentation</title>
|
5
|
+
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
|
6
|
+
<link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
|
7
|
+
<link href='http://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'>
|
8
|
+
<style type="text/css">
|
9
|
+
body {
|
10
|
+
color: #333333;
|
11
|
+
font-family: 'Verdana', 'Droid Sans', sans-serif;
|
12
|
+
font-size: 12px;
|
13
|
+
padding: 0;
|
14
|
+
margin: 0;
|
15
|
+
}
|
16
|
+
body *{
|
17
|
+
-webkit-box-sizing: border-box;
|
18
|
+
-moz-box-sizing: border-box;
|
19
|
+
box-sizing: border-box;
|
20
|
+
}
|
21
|
+
h1, h2, h3 {
|
22
|
+
padding: 10px 5px;
|
23
|
+
margin: 0;
|
24
|
+
background: #dedede;
|
25
|
+
}
|
26
|
+
h1 {
|
27
|
+
font-size: 1.5em;
|
28
|
+
}
|
29
|
+
h2 {
|
30
|
+
font-size: 1.3em;
|
31
|
+
padding-bottom:5px;
|
32
|
+
}
|
33
|
+
h3 {
|
34
|
+
font-size: 0.95em;
|
35
|
+
padding-bottom:0px;
|
36
|
+
}
|
37
|
+
ul, ul li {
|
38
|
+
list-style-type: none;
|
39
|
+
padding:0px;
|
40
|
+
margin:0px;
|
41
|
+
}
|
42
|
+
ul li {
|
43
|
+
border-bottom:1px solid lightgray;
|
44
|
+
background: #fefefe;
|
45
|
+
}
|
46
|
+
ul li:first-child {
|
47
|
+
border-top:1px solid lightgray;
|
48
|
+
}
|
49
|
+
ul li:nth-child(2n+1) {
|
50
|
+
background: #eeeeee;
|
51
|
+
}
|
52
|
+
ul li a {
|
53
|
+
padding:5px;
|
54
|
+
display: block;
|
55
|
+
}
|
56
|
+
ul li a:hover {
|
57
|
+
background: #dedede;
|
58
|
+
}
|
59
|
+
a {
|
60
|
+
color: #1d96d2;
|
61
|
+
text-decoration: none;
|
62
|
+
}
|
63
|
+
span.method {
|
64
|
+
border-radius: 3px;
|
65
|
+
background-color: darkgray;
|
66
|
+
color: white;
|
67
|
+
padding: 3px;
|
68
|
+
font-size: 90%;
|
69
|
+
width: 56px;
|
70
|
+
display: inline-block;
|
71
|
+
text-align: center;
|
72
|
+
}
|
73
|
+
span.method.get {
|
74
|
+
background-color: darkgreen;
|
75
|
+
}
|
76
|
+
span.method.post {
|
77
|
+
background-color: darkorange;
|
78
|
+
}
|
79
|
+
span.method.put, span.method.patch {
|
80
|
+
background-color: darkorange;
|
81
|
+
}
|
82
|
+
span.method.delete {
|
83
|
+
background-color: darkred;
|
84
|
+
}
|
85
|
+
</style>
|
86
|
+
</head>
|
87
|
+
<body>
|
88
|
+
<h1><a href="rspec_doc_00000.html" target="specs">
|
89
|
+
<%= Rails.application.class.to_s.sub('::Application', '') %> API
|
90
|
+
</a></h1>
|
91
|
+
<% @records.group_by{|h| h[:group]}.each do |group, items| %>
|
92
|
+
<h2><%= group %></h2>
|
93
|
+
<% items.group_by{|h| h[:request_path]}.each do |path, records| %>
|
94
|
+
<h3><%= path %></h3>
|
95
|
+
<ul>
|
96
|
+
<% records.each_with_index do |record, index| %>
|
97
|
+
<li>
|
98
|
+
<a href="rspec_doc_<%= (index + 1).to_s.rjust(5, '0') %>.html" target="specs">
|
99
|
+
<span class="method <%= record[:request][:method].downcase %>"><%= record[:request][:method] %></span>
|
100
|
+
<%= record[:description] %><br />
|
101
|
+
</a>
|
102
|
+
</li>
|
103
|
+
<% end %>
|
104
|
+
</ul>
|
105
|
+
<% end %>
|
106
|
+
<% end %>
|
107
|
+
</body>
|
108
|
+
</html>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
color: #333333;
|
11
11
|
font-family: 'Verdana', 'Droid Sans', sans-serif;
|
12
12
|
font-size: 14px;
|
13
|
-
padding:
|
13
|
+
padding: 15px;
|
14
14
|
margin: 0;
|
15
15
|
}
|
16
16
|
body *{
|
@@ -66,7 +66,7 @@
|
|
66
66
|
border-radius: 4px;
|
67
67
|
overflow: hidden;
|
68
68
|
}
|
69
|
-
table{
|
69
|
+
table.params{
|
70
70
|
width: 100%;
|
71
71
|
font-size: 1em;
|
72
72
|
padding: 0;
|
@@ -74,29 +74,29 @@
|
|
74
74
|
border-collapse: collapse;
|
75
75
|
border-spacing: 0px;
|
76
76
|
}
|
77
|
-
tr{
|
77
|
+
table.params tr{
|
78
78
|
border-top: 1px solid #cccccc;
|
79
79
|
}
|
80
|
-
tr:first-child{
|
80
|
+
table.params tr:first-child{
|
81
81
|
border-top: 0
|
82
82
|
}
|
83
|
-
th, td{
|
83
|
+
table.params th, td{
|
84
84
|
margin: 0;
|
85
85
|
padding: 5px 8px;
|
86
86
|
text-align: left;
|
87
87
|
border-left: 1px solid #cccccc;
|
88
88
|
font-size: 1em;
|
89
89
|
}
|
90
|
-
th:first-child, td:first-child{
|
90
|
+
table.params th:first-child, td:first-child{
|
91
91
|
border-left: 0;
|
92
92
|
}
|
93
|
-
td{
|
93
|
+
table.params td{
|
94
94
|
background: #f9f9f9;
|
95
95
|
}
|
96
|
-
tr:nth-child(2n+1) td{
|
96
|
+
table.params tr:nth-child(2n+1) td{
|
97
97
|
background: #ffffff;
|
98
98
|
}
|
99
|
-
td i{
|
99
|
+
table.params td i{
|
100
100
|
font-style: normal;
|
101
101
|
font-weight: 300;
|
102
102
|
float: right;
|
@@ -122,6 +122,12 @@
|
|
122
122
|
font-weight: 400;
|
123
123
|
font-style: normal;
|
124
124
|
}
|
125
|
+
.CodeRay td {
|
126
|
+
width: 99%;
|
127
|
+
}
|
128
|
+
.CodeRay td.line-numbers {
|
129
|
+
width: 1%;
|
130
|
+
}
|
125
131
|
ol{
|
126
132
|
margin: 0 0 10px 0;
|
127
133
|
padding: 0 10px 0 50px;
|
@@ -155,7 +161,7 @@
|
|
155
161
|
<% if @record[:params].size > 0 %>
|
156
162
|
<h5>Parameters</h5>
|
157
163
|
<div class="table">
|
158
|
-
<table>
|
164
|
+
<table class="params">
|
159
165
|
<tr>
|
160
166
|
<th>Name</th>
|
161
167
|
<th>Type</th>
|
@@ -183,7 +189,7 @@
|
|
183
189
|
<code><%= @record[:request][:method] %> <%= @record[:request][:path] %></code>
|
184
190
|
|
185
191
|
<h5>Query parameters</h5>
|
186
|
-
<code><%= @record[:request][:query_parameters] %></code>
|
192
|
+
<code><%= @record[:request][:query_parameters] if @record[:request][:method] == 'GET' %></code>
|
187
193
|
|
188
194
|
<h5><a href="http://curl.haxx.se/docs/manpage.html">CURL</a> Example</h5>
|
189
195
|
<code>TODO</code>
|
@@ -192,7 +198,7 @@
|
|
192
198
|
<h5>Body</h5>
|
193
199
|
<ol>
|
194
200
|
<% @record[:request][:body].split("\n").each do |line| %>
|
195
|
-
<li><%= line %></li>
|
201
|
+
<li style="word-break:&;"><%= line %></li>
|
196
202
|
<% end %>
|
197
203
|
</ol>
|
198
204
|
<% end %>
|
@@ -209,21 +215,18 @@
|
|
209
215
|
|
210
216
|
<% if @record[:response][:body].present? %>
|
211
217
|
<h5>Body</h5>
|
212
|
-
|
213
|
-
|
214
|
-
JSON.
|
215
|
-
|
216
|
-
@record[:response][:body]
|
217
|
-
)
|
218
|
+
<% lines = begin
|
219
|
+
JSON.pretty_generate(
|
220
|
+
JSON.parse(
|
221
|
+
@record[:response][:body]
|
218
222
|
)
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
</ol>
|
223
|
+
)
|
224
|
+
rescue
|
225
|
+
@record[:response][:body]
|
226
|
+
end %>
|
227
|
+
<code>
|
228
|
+
<%= CodeRay.scan(lines, :json).div(line_numbers: :table) %>
|
229
|
+
</code>
|
227
230
|
<% end %>
|
228
231
|
</div>
|
229
232
|
</body>
|
data/reqres_rspec.gemspec
CHANGED
@@ -4,20 +4,22 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'reqres_rspec/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'reqres_rspec'
|
8
8
|
spec.version = ReqresRspec::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['rilian']
|
10
|
+
spec.email = ['dmitriyis@gmail.com']
|
11
11
|
spec.description = %q{Generates API documentation in PDF, HTML, JSON, YAML format for integration tests written with RSpec}
|
12
12
|
spec.summary = %q{Generates API documentation in PDF, HTML, JSON, YAML format for integration tests written with RSpec}
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
13
|
+
spec.homepage = 'https://github.com/reqres-api/reqres_rspec'
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.
|
22
|
-
|
21
|
+
spec.add_dependency 'coderay'
|
22
|
+
|
23
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
24
|
+
spec.add_development_dependency 'rake'
|
23
25
|
end
|
metadata
CHANGED
@@ -1,41 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reqres_rspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rilian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: coderay
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
|
-
- - ~>
|
31
|
+
- - "~>"
|
18
32
|
- !ruby/object:Gem::Version
|
19
33
|
version: '1.3'
|
20
34
|
type: :development
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
|
-
- - ~>
|
38
|
+
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: '1.3'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
|
-
- -
|
45
|
+
- - ">="
|
32
46
|
- !ruby/object:Gem::Version
|
33
47
|
version: '0'
|
34
48
|
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
|
-
- -
|
52
|
+
- - ">="
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '0'
|
41
55
|
description: Generates API documentation in PDF, HTML, JSON, YAML format for integration
|
@@ -46,7 +60,7 @@ executables: []
|
|
46
60
|
extensions: []
|
47
61
|
extra_rdoc_files: []
|
48
62
|
files:
|
49
|
-
- .gitignore
|
63
|
+
- ".gitignore"
|
50
64
|
- Gemfile
|
51
65
|
- LICENSE.txt
|
52
66
|
- README.md
|
@@ -57,6 +71,8 @@ files:
|
|
57
71
|
- lib/reqres_rspec/version.rb
|
58
72
|
- lib/reqres_rspec/writers/html.rb
|
59
73
|
- lib/reqres_rspec/writers/templates/header.erb
|
74
|
+
- lib/reqres_rspec/writers/templates/index.erb
|
75
|
+
- lib/reqres_rspec/writers/templates/panel.erb
|
60
76
|
- lib/reqres_rspec/writers/templates/spec.erb
|
61
77
|
- reqres_rspec.gemspec
|
62
78
|
homepage: https://github.com/reqres-api/reqres_rspec
|
@@ -69,17 +85,17 @@ require_paths:
|
|
69
85
|
- lib
|
70
86
|
required_ruby_version: !ruby/object:Gem::Requirement
|
71
87
|
requirements:
|
72
|
-
- -
|
88
|
+
- - ">="
|
73
89
|
- !ruby/object:Gem::Version
|
74
90
|
version: '0'
|
75
91
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
92
|
requirements:
|
77
|
-
- -
|
93
|
+
- - ">="
|
78
94
|
- !ruby/object:Gem::Version
|
79
95
|
version: '0'
|
80
96
|
requirements: []
|
81
97
|
rubyforge_project:
|
82
|
-
rubygems_version: 2.
|
98
|
+
rubygems_version: 2.2.2
|
83
99
|
signing_key:
|
84
100
|
specification_version: 4
|
85
101
|
summary: Generates API documentation in PDF, HTML, JSON, YAML format for integration
|