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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 37c81ea83e40e5956d5ac04dc91e70b7c82c71a4
4
- data.tar.gz: 426569056ed69c40110d35968089b7bd23ecea7f
3
+ metadata.gz: c6aa9c6c95beaf16c80ee51d0578c483c385683f
4
+ data.tar.gz: 1906b7f8701dc21badcbfc7c0353ef506a289dec
5
5
  SHA512:
6
- metadata.gz: 0b4ddf6150b33d84f1a9a5be2bdc77a4a8471b5d8ea2ecd6d63b8ad1aafe0f86f0cc8a07b9760fad195e57f00dfdb1c7ad7a40994eeb79f45493de2f31833cc2
7
- data.tar.gz: 2ed8b1bb73d1f205d90612770a494d8fd5f463be54c4aa2000df89baa40400b8f8836def7cfa45c1d9ceeb7d778cd761fd1dc19a5cae3c0aaa2f7e177d38d79d
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`. No additional DSL needed. Beside covering rspec tests, documentation may be extended with API controller action comments win `yardoc` style. Documentation is generated in JSON, YAML, HTML, PDF formats.
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
- Add this line to your application's Gemfile:
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
- Or install it yourself as:
18
-
19
- $ gem install reqres_rspec
21
+ ### 2) PDF generator
20
22
 
21
- ### PDF generator
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
- TODO: Write usage instructions here
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
- TODO: Write usage instructions here
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
- TODO: Write usage instructions here
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 "bundler/gem_tasks"
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
- unless self.example.options.has_key?(:collect_for_doc) && !self.example.options[:collect_for_doc]
14
- if defined?(self.request) && defined?(self.response)
15
- collector.collect(self, self.request, self.response)
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
- title: spec.example.full_description,
55
- description: description,
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
@@ -1,3 +1,3 @@
1
1
  module ReqresRspec
2
- VERSION = '0.0.15'
2
+ VERSION = '0.0.16'
3
3
  end
@@ -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_#{('0000' + (@index).to_s)[-5, 5]}.html")
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
@@ -10,7 +10,7 @@
10
10
  color: #333333;
11
11
  font-family: 'Verdana', 'Droid Sans', sans-serif;
12
12
  font-size: 14px;
13
- padding: 0;
13
+ padding: 15px;
14
14
  margin: 0;
15
15
  }
16
16
  body *{
@@ -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: 0;
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
- <ol>
213
- <% lines = begin
214
- JSON.pretty_generate(
215
- JSON.parse(
216
- @record[:response][:body]
217
- )
218
+ <% lines = begin
219
+ JSON.pretty_generate(
220
+ JSON.parse(
221
+ @record[:response][:body]
218
222
  )
219
- rescue
220
- @record[:response][:body]
221
- end
222
-
223
- lines.split("\n").each do |line| %>
224
- <li><%= line %></li>
225
- <% end %>
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 = "reqres_rspec"
7
+ spec.name = 'reqres_rspec'
8
8
  spec.version = ReqresRspec::VERSION
9
- spec.authors = ["rilian"]
10
- spec.email = ["dmitriyis@gmail.com"]
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 = "https://github.com/reqres-api/reqres_rspec"
14
- spec.license = "MIT"
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 = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake"
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.15
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: 2013-11-18 00:00:00.000000000 Z
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.0.6
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