rspec_api_documentation 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,218 +1,17 @@
1
- require 'rspec/core/formatters/base_formatter'
2
-
3
- module RspecApiDocumentation
4
- module DSL
5
- extend ActiveSupport::Concern
6
-
7
- delegate :response_headers, :status, :response_body, :to => :client
8
- delegate :request_method, :request_headers, :request_body, :to => :destination
9
-
10
- module ClassMethods
11
- def self.define_action(method)
12
- define_method method do |*args, &block|
13
- options = if args.last.is_a?(Hash) then args.pop else {} end
14
- options[:method] = method
15
- options[:route] = args.first
16
- args.push(options)
17
- args[0] = "#{method.to_s.upcase} #{args[0]}"
18
- context(*args, &block)
19
- end
20
- end
21
-
22
- define_action :get
23
- define_action :post
24
- define_action :put
25
- define_action :delete
26
-
27
- def parameter(name, description, options = {})
28
- parameters.push(options.merge(:name => name.to_s, :description => description))
29
- end
30
-
31
- def required_parameters(*names)
32
- names.each do |name|
33
- param = parameters.find { |param| param[:name] == name.to_s }
34
- raise "Undefined parameters can not be required." unless param
35
- param[:required] = true
36
- end
37
- end
38
-
39
- def callback(description, &block)
40
- require 'webmock'
41
- self.send(:include, WebMock::API)
42
- context(description, &block)
43
- end
44
-
45
- def trigger_callback(&block)
46
- define_method(:do_callback) do
47
- require 'rack'
48
- stub_request(:any, callback_url).to_rack(destination)
49
- instance_eval &block
50
- end
51
- end
52
-
53
- def scope_parameters(scope, keys)
54
- return unless metadata[:parameters]
55
-
56
- if keys == :all
57
- keys = parameter_keys.map(&:to_s)
58
- else
59
- keys = keys.map(&:to_s)
60
- end
61
-
62
- keys.each do |key|
63
- param = parameters.detect { |param| param[:name] == key }
64
- param[:scope] = scope if param
65
- end
66
- end
67
-
68
- def example_request(description, params = {}, &block)
69
- file_path = caller.first[0, caller.first =~ /:/]
70
-
71
- location = caller.first[0, caller.first =~ /(:in|$)/]
72
- location = RSpec::Core::Formatters::BaseFormatter::relative_path(location)
73
-
74
- example description, :location => location, :file_path => file_path do
75
- do_request(params)
76
- instance_eval &block if block_given?
77
- end
78
- end
79
-
80
- private
81
- def parameters
82
- metadata[:parameters] ||= []
83
- if superclass_metadata && metadata[:parameters].equal?(superclass_metadata[:parameters])
84
- metadata[:parameters] = Marshal.load(Marshal.dump(superclass_metadata[:parameters]))
85
- end
86
- metadata[:parameters]
87
- end
88
-
89
- def parameter_keys
90
- parameters.map { |param| param[:name] }
91
- end
92
- end
93
-
94
- def client
95
- @client ||= RackTestClient.new(self)
96
- end
97
-
98
- def destination
99
- @destination ||= TestServer.new(self)
100
- end
101
-
102
- def callback_url
103
- raise "You must define callback_url"
104
- end
105
-
106
- def do_request(extra_params = {})
107
- @extra_params = extra_params
108
-
109
- params_or_body = nil
110
- path_or_query = path
111
-
112
- if method == :get && !query_string.blank?
113
- path_or_query = path + "?#{query_string}"
114
- else
115
- params_or_body = respond_to?(:raw_post) ? raw_post : params
116
- end
117
-
118
- client.send(method, path_or_query, params_or_body)
119
- end
120
-
121
- def no_doc(&block)
122
- requests = example.metadata[:requests]
123
- example.metadata[:requests] = []
124
-
125
- instance_eval &block
126
-
127
- example.metadata[:requests] = requests
128
- end
129
-
130
- def query_string
131
- query = params.to_a.map do |param|
132
- param.map! { |a| CGI.escape(a.to_s) }
133
- param.join("=")
134
- end
135
- query.join("&")
136
- end
137
-
138
- def params
139
- return unless example.metadata[:parameters]
140
- parameters = example.metadata[:parameters].inject({}) do |hash, param|
141
- set_param(hash, param)
142
- end
143
- parameters.merge!(extra_params)
144
- parameters
145
- end
146
-
147
- def method
148
- example.metadata[:method]
149
- end
150
-
151
- def in_path?(param)
152
- path_params.include?(param)
153
- end
154
-
155
- def path_params
156
- example.metadata[:route].scan(/:(\w+)/).flatten
157
- end
158
-
159
- def path
160
- example.metadata[:route].gsub(/:(\w+)/) do |match|
161
- if extra_params.keys.include?($1)
162
- delete_extra_param($1)
163
- elsif respond_to?($1)
164
- send($1)
165
- else
166
- match
167
- end
168
- end
169
- end
170
-
171
- def app
172
- RspecApiDocumentation.configuration.app
173
- end
174
-
175
- def explanation(text)
176
- example.metadata[:explanation] = text
177
- end
178
-
179
- private
180
- def extra_params
181
- return {} if @extra_params.nil?
182
- @extra_params.inject({}) do |h, (k, v)|
183
- h[k.to_s] = v
184
- h
185
- end
186
- end
187
-
188
- def delete_extra_param(key)
189
- @extra_params.delete(key.to_sym) || @extra_params.delete(key.to_s)
190
- end
191
-
192
- def set_param(hash, param)
193
- key = param[:name]
194
- return hash if !respond_to?(key) || in_path?(key)
195
-
196
- if param[:scope]
197
- hash[param[:scope].to_s] ||= {}
198
- hash[param[:scope].to_s][key] = send(key)
199
- else
200
- hash[key] = send(key)
201
- end
202
-
203
- hash
204
- end
205
- end
206
- end
1
+ require "rspec_api_documentation/dsl/resource"
2
+ require "rspec_api_documentation/dsl/endpoint"
3
+ require "rspec_api_documentation/dsl/callback"
207
4
 
208
5
  def self.resource(*args, &block)
209
6
  options = if args.last.is_a?(Hash) then args.pop else {} end
210
- options[:api_docs_dsl] = true
7
+ options[:api_doc_dsl] = :resource
211
8
  options[:resource_name] = args.first
212
9
  options[:document] ||= :all
213
10
  args.push(options)
214
11
  describe(*args, &block)
215
12
  end
216
13
 
217
- RSpec.configuration.include RspecApiDocumentation::DSL, :api_docs_dsl => true
14
+ RSpec.configuration.include RspecApiDocumentation::DSL::Resource, :api_doc_dsl => :resource
15
+ RSpec.configuration.include RspecApiDocumentation::DSL::Endpoint, :api_doc_dsl => :endpoint
16
+ RSpec.configuration.include RspecApiDocumentation::DSL::Callback, :api_doc_dsl => :callback
218
17
  RSpec.configuration.backtrace_clean_patterns << %r{lib/rspec_api_documentation/dsl\.rb}
@@ -0,0 +1,25 @@
1
+ module RspecApiDocumentation::DSL
2
+ module Callback
3
+ extend ActiveSupport::Concern
4
+
5
+ delegate :request_method, :request_headers, :request_body, :to => :destination
6
+
7
+ module ClassMethods
8
+ def trigger_callback(&block)
9
+ define_method(:do_callback) do
10
+ require 'rack'
11
+ stub_request(:any, callback_url).to_rack(destination)
12
+ instance_eval &block
13
+ end
14
+ end
15
+ end
16
+
17
+ def destination
18
+ @destination ||= RspecApiDocumentation::TestServer.new(self)
19
+ end
20
+
21
+ def callback_url
22
+ raise "You must define callback_url"
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,119 @@
1
+ require 'rspec/core/formatters/base_formatter'
2
+
3
+ module RspecApiDocumentation::DSL
4
+ module Endpoint
5
+ extend ActiveSupport::Concern
6
+
7
+ delegate :response_headers, :status, :response_body, :to => :client
8
+
9
+ module ClassMethods
10
+ def example_request(description, params = {}, &block)
11
+ file_path = caller.first[0, caller.first =~ /:/]
12
+
13
+ location = caller.first[0, caller.first =~ /(:in|$)/]
14
+ location = relative_path(location)
15
+
16
+ example description, :location => location, :file_path => file_path do
17
+ do_request(params)
18
+ instance_eval &block if block_given?
19
+ end
20
+ end
21
+
22
+ private
23
+ # from rspec-core
24
+ def relative_path(line)
25
+ line = line.sub(File.expand_path("."), ".")
26
+ line = line.sub(/\A([^:]+:\d+)$/, '\\1')
27
+ return nil if line == '-e:1'
28
+ line
29
+ end
30
+ end
31
+
32
+ def do_request(extra_params = {})
33
+ @extra_params = extra_params
34
+
35
+ params_or_body = nil
36
+ path_or_query = path
37
+
38
+ if method == :get && !query_string.blank?
39
+ path_or_query = path + "?#{query_string}"
40
+ else
41
+ params_or_body = respond_to?(:raw_post) ? raw_post : params
42
+ end
43
+
44
+ client.send(method, path_or_query, params_or_body)
45
+ end
46
+
47
+ def query_string
48
+ query = params.to_a.map do |param|
49
+ param.map! { |a| CGI.escape(a.to_s) }
50
+ param.join("=")
51
+ end
52
+ query.join("&")
53
+ end
54
+
55
+ def params
56
+ return unless example.metadata[:parameters]
57
+ parameters = example.metadata[:parameters].inject({}) do |hash, param|
58
+ set_param(hash, param)
59
+ end
60
+ parameters.merge!(extra_params)
61
+ parameters
62
+ end
63
+
64
+ def method
65
+ example.metadata[:method]
66
+ end
67
+
68
+ def in_path?(param)
69
+ path_params.include?(param)
70
+ end
71
+
72
+ def path_params
73
+ example.metadata[:route].scan(/:(\w+)/).flatten
74
+ end
75
+
76
+ def path
77
+ example.metadata[:route].gsub(/:(\w+)/) do |match|
78
+ if extra_params.keys.include?($1)
79
+ delete_extra_param($1)
80
+ elsif respond_to?($1)
81
+ send($1)
82
+ else
83
+ match
84
+ end
85
+ end
86
+ end
87
+
88
+ def explanation(text)
89
+ example.metadata[:explanation] = text
90
+ end
91
+
92
+ private
93
+ def extra_params
94
+ return {} if @extra_params.nil?
95
+ @extra_params.inject({}) do |h, (k, v)|
96
+ h[k.to_s] = v
97
+ h
98
+ end
99
+ end
100
+
101
+ def delete_extra_param(key)
102
+ @extra_params.delete(key.to_sym) || @extra_params.delete(key.to_s)
103
+ end
104
+
105
+ def set_param(hash, param)
106
+ key = param[:name]
107
+ return hash if !respond_to?(key) || in_path?(key)
108
+
109
+ if param[:scope]
110
+ hash[param[:scope].to_s] ||= {}
111
+ hash[param[:scope].to_s][key] = send(key)
112
+ else
113
+ hash[key] = send(key)
114
+ end
115
+
116
+ hash
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,92 @@
1
+ module RspecApiDocumentation::DSL
2
+ module Resource
3
+ extend ActiveSupport::Concern
4
+
5
+ module ClassMethods
6
+ def self.define_action(method)
7
+ define_method method do |*args, &block|
8
+ options = if args.last.is_a?(Hash) then args.pop else {} end
9
+ options[:method] = method
10
+ options[:route] = args.first
11
+ options[:api_doc_dsl] = :endpoint
12
+ args.push(options)
13
+ args[0] = "#{method.to_s.upcase} #{args[0]}"
14
+ context(*args, &block)
15
+ end
16
+ end
17
+
18
+ define_action :get
19
+ define_action :post
20
+ define_action :put
21
+ define_action :delete
22
+
23
+ def callback(*args, &block)
24
+ require 'webmock'
25
+ self.send(:include, WebMock::API)
26
+
27
+ options = if args.last.is_a?(Hash) then args.pop else {} end
28
+ options[:api_doc_dsl] = :callback
29
+ args.push(options)
30
+
31
+ context(*args, &block)
32
+ end
33
+
34
+ def parameter(name, description, options = {})
35
+ parameters.push(options.merge(:name => name.to_s, :description => description))
36
+ end
37
+
38
+ def required_parameters(*names)
39
+ names.each do |name|
40
+ param = parameters.find { |param| param[:name] == name.to_s }
41
+ raise "Undefined parameters can not be required." unless param
42
+ param[:required] = true
43
+ end
44
+ end
45
+
46
+ def scope_parameters(scope, keys)
47
+ return unless metadata[:parameters]
48
+
49
+ if keys == :all
50
+ keys = parameter_keys.map(&:to_s)
51
+ else
52
+ keys = keys.map(&:to_s)
53
+ end
54
+
55
+ keys.each do |key|
56
+ param = parameters.detect { |param| param[:name] == key }
57
+ param[:scope] = scope if param
58
+ end
59
+ end
60
+
61
+ private
62
+ def parameters
63
+ metadata[:parameters] ||= []
64
+ if superclass_metadata && metadata[:parameters].equal?(superclass_metadata[:parameters])
65
+ metadata[:parameters] = Marshal.load(Marshal.dump(superclass_metadata[:parameters]))
66
+ end
67
+ metadata[:parameters]
68
+ end
69
+
70
+ def parameter_keys
71
+ parameters.map { |param| param[:name] }
72
+ end
73
+ end
74
+
75
+ def app
76
+ RspecApiDocumentation.configuration.app
77
+ end
78
+
79
+ def client
80
+ @client ||= RspecApiDocumentation::RackTestClient.new(self)
81
+ end
82
+
83
+ def no_doc(&block)
84
+ requests = example.metadata[:requests]
85
+ example.metadata[:requests] = []
86
+
87
+ instance_eval &block
88
+
89
+ example.metadata[:requests] = requests
90
+ end
91
+ end
92
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec_api_documentation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-04-25 00:00:00.000000000 Z
14
+ date: 2012-05-14 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rspec
18
- requirement: &70231343311200 !ruby/object:Gem::Requirement
18
+ requirement: !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,10 +23,15 @@ dependencies:
23
23
  version: 2.6.0
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *70231343311200
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ! '>='
30
+ - !ruby/object:Gem::Version
31
+ version: 2.6.0
27
32
  - !ruby/object:Gem::Dependency
28
33
  name: activesupport
29
- requirement: &70231343308540 !ruby/object:Gem::Requirement
34
+ requirement: !ruby/object:Gem::Requirement
30
35
  none: false
31
36
  requirements:
32
37
  - - ! '>='
@@ -34,10 +39,15 @@ dependencies:
34
39
  version: 3.0.0
35
40
  type: :runtime
36
41
  prerelease: false
37
- version_requirements: *70231343308540
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 3.0.0
38
48
  - !ruby/object:Gem::Dependency
39
49
  name: i18n
40
- requirement: &70231343307960 !ruby/object:Gem::Requirement
50
+ requirement: !ruby/object:Gem::Requirement
41
51
  none: false
42
52
  requirements:
43
53
  - - ! '>='
@@ -45,10 +55,15 @@ dependencies:
45
55
  version: 0.1.0
46
56
  type: :runtime
47
57
  prerelease: false
48
- version_requirements: *70231343307960
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: 0.1.0
49
64
  - !ruby/object:Gem::Dependency
50
65
  name: mustache
51
- requirement: &70231343307180 !ruby/object:Gem::Requirement
66
+ requirement: !ruby/object:Gem::Requirement
52
67
  none: false
53
68
  requirements:
54
69
  - - ! '>='
@@ -56,10 +71,15 @@ dependencies:
56
71
  version: 0.99.4
57
72
  type: :runtime
58
73
  prerelease: false
59
- version_requirements: *70231343307180
74
+ version_requirements: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: 0.99.4
60
80
  - !ruby/object:Gem::Dependency
61
81
  name: webmock
62
- requirement: &70231343306160 !ruby/object:Gem::Requirement
82
+ requirement: !ruby/object:Gem::Requirement
63
83
  none: false
64
84
  requirements:
65
85
  - - ! '>='
@@ -67,10 +87,15 @@ dependencies:
67
87
  version: 1.7.0
68
88
  type: :runtime
69
89
  prerelease: false
70
- version_requirements: *70231343306160
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: 1.7.0
71
96
  - !ruby/object:Gem::Dependency
72
97
  name: json
73
- requirement: &70231343305120 !ruby/object:Gem::Requirement
98
+ requirement: !ruby/object:Gem::Requirement
74
99
  none: false
75
100
  requirements:
76
101
  - - ! '>='
@@ -78,10 +103,15 @@ dependencies:
78
103
  version: 1.4.6
79
104
  type: :runtime
80
105
  prerelease: false
81
- version_requirements: *70231343305120
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: 1.4.6
82
112
  - !ruby/object:Gem::Dependency
83
113
  name: coderay
84
- requirement: &70231343303560 !ruby/object:Gem::Requirement
114
+ requirement: !ruby/object:Gem::Requirement
85
115
  none: false
86
116
  requirements:
87
117
  - - ! '>='
@@ -89,10 +119,15 @@ dependencies:
89
119
  version: 1.0.7.rc1
90
120
  type: :runtime
91
121
  prerelease: false
92
- version_requirements: *70231343303560
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ! '>='
126
+ - !ruby/object:Gem::Version
127
+ version: 1.0.7.rc1
93
128
  - !ruby/object:Gem::Dependency
94
129
  name: fakefs
95
- requirement: &70231343302400 !ruby/object:Gem::Requirement
130
+ requirement: !ruby/object:Gem::Requirement
96
131
  none: false
97
132
  requirements:
98
133
  - - ! '>='
@@ -100,10 +135,15 @@ dependencies:
100
135
  version: '0'
101
136
  type: :development
102
137
  prerelease: false
103
- version_requirements: *70231343302400
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ! '>='
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
104
144
  - !ruby/object:Gem::Dependency
105
145
  name: sinatra
106
- requirement: &70231343301140 !ruby/object:Gem::Requirement
146
+ requirement: !ruby/object:Gem::Requirement
107
147
  none: false
108
148
  requirements:
109
149
  - - ! '>='
@@ -111,10 +151,15 @@ dependencies:
111
151
  version: '0'
112
152
  type: :development
113
153
  prerelease: false
114
- version_requirements: *70231343301140
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ none: false
156
+ requirements:
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
115
160
  - !ruby/object:Gem::Dependency
116
161
  name: aruba
117
- requirement: &70231343300100 !ruby/object:Gem::Requirement
162
+ requirement: !ruby/object:Gem::Requirement
118
163
  none: false
119
164
  requirements:
120
165
  - - ! '>='
@@ -122,10 +167,15 @@ dependencies:
122
167
  version: '0'
123
168
  type: :development
124
169
  prerelease: false
125
- version_requirements: *70231343300100
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ! '>='
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
126
176
  - !ruby/object:Gem::Dependency
127
177
  name: capybara
128
- requirement: &70231343299600 !ruby/object:Gem::Requirement
178
+ requirement: !ruby/object:Gem::Requirement
129
179
  none: false
130
180
  requirements:
131
181
  - - ! '>='
@@ -133,10 +183,15 @@ dependencies:
133
183
  version: '0'
134
184
  type: :development
135
185
  prerelease: false
136
- version_requirements: *70231343299600
186
+ version_requirements: !ruby/object:Gem::Requirement
187
+ none: false
188
+ requirements:
189
+ - - ! '>='
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
137
192
  - !ruby/object:Gem::Dependency
138
193
  name: rake
139
- requirement: &70231343299140 !ruby/object:Gem::Requirement
194
+ requirement: !ruby/object:Gem::Requirement
140
195
  none: false
141
196
  requirements:
142
197
  - - ! '>='
@@ -144,10 +199,15 @@ dependencies:
144
199
  version: '0'
145
200
  type: :development
146
201
  prerelease: false
147
- version_requirements: *70231343299140
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - ! '>='
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
148
208
  - !ruby/object:Gem::Dependency
149
209
  name: rack-test
150
- requirement: &70231343298220 !ruby/object:Gem::Requirement
210
+ requirement: !ruby/object:Gem::Requirement
151
211
  none: false
152
212
  requirements:
153
213
  - - ! '>='
@@ -155,10 +215,15 @@ dependencies:
155
215
  version: 0.5.5
156
216
  type: :development
157
217
  prerelease: false
158
- version_requirements: *70231343298220
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ none: false
220
+ requirements:
221
+ - - ! '>='
222
+ - !ruby/object:Gem::Version
223
+ version: 0.5.5
159
224
  - !ruby/object:Gem::Dependency
160
225
  name: rack-oauth2
161
- requirement: &70231343297460 !ruby/object:Gem::Requirement
226
+ requirement: !ruby/object:Gem::Requirement
162
227
  none: false
163
228
  requirements:
164
229
  - - ! '>='
@@ -166,7 +231,12 @@ dependencies:
166
231
  version: 0.14.4
167
232
  type: :development
168
233
  prerelease: false
169
- version_requirements: *70231343297460
234
+ version_requirements: !ruby/object:Gem::Requirement
235
+ none: false
236
+ requirements:
237
+ - - ! '>='
238
+ - !ruby/object:Gem::Version
239
+ version: 0.14.4
170
240
  description: Generate API docs from your test suite
171
241
  email:
172
242
  - chris@smartlogicsolutions.com
@@ -181,6 +251,9 @@ files:
181
251
  - lib/rspec_api_documentation/client_base.rb
182
252
  - lib/rspec_api_documentation/configuration.rb
183
253
  - lib/rspec_api_documentation/curl.rb
254
+ - lib/rspec_api_documentation/dsl/callback.rb
255
+ - lib/rspec_api_documentation/dsl/endpoint.rb
256
+ - lib/rspec_api_documentation/dsl/resource.rb
184
257
  - lib/rspec_api_documentation/dsl.rb
185
258
  - lib/rspec_api_documentation/example.rb
186
259
  - lib/rspec_api_documentation/headers.rb
@@ -219,7 +292,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
219
292
  version: 1.3.6
220
293
  requirements: []
221
294
  rubyforge_project:
222
- rubygems_version: 1.8.15
295
+ rubygems_version: 1.8.22
223
296
  signing_key:
224
297
  specification_version: 3
225
298
  summary: A double black belt for your docs