rspec_api_documentation 3.1.0 → 4.0.0
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.
- checksums.yaml +4 -4
- data/lib/rspec_api_documentation/api_formatter.rb +11 -15
- data/lib/rspec_api_documentation/dsl.rb +1 -1
- data/lib/rspec_api_documentation/dsl/callback.rb +1 -1
- data/lib/rspec_api_documentation/dsl/endpoint.rb +5 -6
- data/lib/rspec_api_documentation/dsl/resource.rb +12 -0
- data/lib/rspec_api_documentation/example.rb +4 -0
- data/lib/rspec_api_documentation/test_server.rb +1 -2
- data/lib/rspec_api_documentation/views/markup_example.rb +2 -2
- data/lib/rspec_api_documentation/writers/json_writer.rb +2 -1
- data/templates/rspec_api_documentation/html_example.mustache +29 -0
- data/templates/rspec_api_documentation/markdown_example.mustache +16 -8
- data/templates/rspec_api_documentation/textile_example.mustache +14 -6
- metadata +62 -50
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9cff1f54aa57141a0f21909348c9cf326a75ea93
|
4
|
+
data.tar.gz: 356b837bc052ff05738e2d95cbfec04e1c3a6cf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80c655256dc7447ef2af3ee6abf54569ea05730216cae2ae1408ddaf1de4028b75979a759247c4a5615a86a9a9d47a723dc129af1b32832db68b5926d0597ee9
|
7
|
+
data.tar.gz: 3feddb137db8775facd2c454304fe8e4793fc61add4c050ea27235bf62c2d6ee75f3359b4982186aa66773a84d0bdba6cb135b1c13fbac8148b015a6e3bb6bdf
|
@@ -2,43 +2,39 @@ require 'rspec/core/formatters/base_text_formatter'
|
|
2
2
|
|
3
3
|
module RspecApiDocumentation
|
4
4
|
class ApiFormatter < RSpec::Core::Formatters::BaseTextFormatter
|
5
|
+
RSpec::Core::Formatters.register self, :example_passed, :example_failed, :stop
|
6
|
+
|
5
7
|
def initialize(output)
|
6
8
|
super
|
7
9
|
|
8
10
|
output.puts "Generating API Docs"
|
9
11
|
end
|
10
12
|
|
11
|
-
def start(
|
13
|
+
def start(notification)
|
12
14
|
super
|
13
15
|
|
14
16
|
RspecApiDocumentation.documentations.each(&:clear_docs)
|
15
17
|
end
|
16
18
|
|
17
|
-
def example_group_started(
|
19
|
+
def example_group_started(notification)
|
18
20
|
super
|
19
21
|
|
20
|
-
output.puts " #{example_group.description}"
|
22
|
+
output.puts " #{@example_group.description}"
|
21
23
|
end
|
22
24
|
|
23
|
-
def example_passed(
|
24
|
-
|
25
|
-
|
26
|
-
output.puts " * #{example.description}"
|
25
|
+
def example_passed(example_notification)
|
26
|
+
output.puts " * #{example_notification.example.description}"
|
27
27
|
|
28
28
|
RspecApiDocumentation.documentations.each do |documentation|
|
29
|
-
documentation.document_example(example)
|
29
|
+
documentation.document_example(example_notification.example)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
def example_failed(
|
34
|
-
|
35
|
-
|
36
|
-
output.puts " ! #{example.description} (FAILED)"
|
33
|
+
def example_failed(example_notification)
|
34
|
+
output.puts " ! #{example_notification.example.description} (FAILED)"
|
37
35
|
end
|
38
36
|
|
39
|
-
def stop
|
40
|
-
super
|
41
|
-
|
37
|
+
def stop(notification)
|
42
38
|
RspecApiDocumentation.documentations.each(&:write)
|
43
39
|
end
|
44
40
|
end
|
@@ -24,4 +24,4 @@ end
|
|
24
24
|
RSpec.configuration.include RspecApiDocumentation::DSL::Resource, :api_doc_dsl => :resource
|
25
25
|
RSpec.configuration.include RspecApiDocumentation::DSL::Endpoint, :api_doc_dsl => :endpoint
|
26
26
|
RSpec.configuration.include RspecApiDocumentation::DSL::Callback, :api_doc_dsl => :callback
|
27
|
-
RSpec.configuration.backtrace_exclusion_patterns << %r{lib/rspec_api_documentation/dsl
|
27
|
+
RSpec.configuration.backtrace_exclusion_patterns << %r{lib/rspec_api_documentation/dsl/}
|
@@ -12,12 +12,7 @@ module RspecApiDocumentation::DSL
|
|
12
12
|
|
13
13
|
module ClassMethods
|
14
14
|
def example_request(description, params = {}, &block)
|
15
|
-
|
16
|
-
|
17
|
-
location = caller.first[0, caller.first =~ /(:in|$)/]
|
18
|
-
location = relative_path(location)
|
19
|
-
|
20
|
-
example description, :location => location, :file_path => file_path do
|
15
|
+
example description, :caller => block.send(:caller) do
|
21
16
|
do_request(params)
|
22
17
|
instance_eval &block if block_given?
|
23
18
|
end
|
@@ -106,6 +101,10 @@ module RspecApiDocumentation::DSL
|
|
106
101
|
example.metadata[:explanation] = text
|
107
102
|
end
|
108
103
|
|
104
|
+
def example
|
105
|
+
RSpec.current_example
|
106
|
+
end
|
107
|
+
|
109
108
|
private
|
110
109
|
|
111
110
|
def rspec_api_documentation_client
|
@@ -42,6 +42,10 @@ module RspecApiDocumentation::DSL
|
|
42
42
|
parameters.push(options.merge(:name => name.to_s, :description => description))
|
43
43
|
end
|
44
44
|
|
45
|
+
def response_field(name, description, options = {})
|
46
|
+
response_fields.push(options.merge(:name => name.to_s, :description => description))
|
47
|
+
end
|
48
|
+
|
45
49
|
def header(name, value)
|
46
50
|
headers[name] = value
|
47
51
|
end
|
@@ -55,6 +59,14 @@ module RspecApiDocumentation::DSL
|
|
55
59
|
metadata[:parameters]
|
56
60
|
end
|
57
61
|
|
62
|
+
def response_fields
|
63
|
+
metadata[:response_fields] ||= []
|
64
|
+
if superclass_metadata && metadata[:response_fields].equal?(superclass_metadata[:response_fields])
|
65
|
+
metadata[:response_fields] = Marshal.load(Marshal.dump(superclass_metadata[:response_fields]))
|
66
|
+
end
|
67
|
+
metadata[:response_fields]
|
68
|
+
end
|
69
|
+
|
58
70
|
def headers
|
59
71
|
metadata[:headers] ||= {}
|
60
72
|
if superclass_metadata && metadata[:headers].equal?(superclass_metadata[:headers])
|
@@ -1,8 +1,7 @@
|
|
1
1
|
module RspecApiDocumentation
|
2
|
-
class TestServer < Struct.new(:
|
2
|
+
class TestServer < Struct.new(:example)
|
3
3
|
include Headers
|
4
4
|
|
5
|
-
delegate :example, :to => :context
|
6
5
|
delegate :metadata, :to => :example
|
7
6
|
|
8
7
|
attr_reader :request_method, :request_headers, :request_body
|
@@ -19,11 +19,11 @@ module RspecApiDocumentation
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def dirname
|
22
|
-
resource_name.downcase.gsub(
|
22
|
+
resource_name.downcase.gsub(/\s+/, '_').gsub(":", "_")
|
23
23
|
end
|
24
24
|
|
25
25
|
def filename
|
26
|
-
basename = description.downcase.gsub(/\s+/, '_').gsub(
|
26
|
+
basename = description.downcase.gsub(/\s+/, '_').gsub(Pathname::SEPARATOR_PAT, '')
|
27
27
|
basename = Digest::MD5.new.update(description).to_s if basename.blank?
|
28
28
|
"#{basename}.#{extension}"
|
29
29
|
end
|
@@ -78,7 +78,7 @@ module RspecApiDocumentation
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def filename
|
81
|
-
basename = description.downcase.gsub(/\s+/, '_').gsub(
|
81
|
+
basename = description.downcase.gsub(/\s+/, '_').gsub(Pathname::SEPARATOR_PAT, '')
|
82
82
|
"#{basename}.json"
|
83
83
|
end
|
84
84
|
|
@@ -90,6 +90,7 @@ module RspecApiDocumentation
|
|
90
90
|
:description => description,
|
91
91
|
:explanation => explanation,
|
92
92
|
:parameters => respond_to?(:parameters) ? parameters : [],
|
93
|
+
:response_fields => respond_to?(:response_fields) ? response_fields : [],
|
93
94
|
:requests => requests
|
94
95
|
}
|
95
96
|
end
|
@@ -69,6 +69,35 @@
|
|
69
69
|
</table>
|
70
70
|
{{/ has_parameters? }}
|
71
71
|
|
72
|
+
{{# has_response_fields? }}
|
73
|
+
<h3>Response Fields</h3>
|
74
|
+
<table class="response-fields table table-striped table-bordered table-condensed">
|
75
|
+
<thead>
|
76
|
+
<tr>
|
77
|
+
<th>Name</th>
|
78
|
+
<th>Description</th>
|
79
|
+
</tr>
|
80
|
+
</thead>
|
81
|
+
<tbody>
|
82
|
+
{{# response_fields }}
|
83
|
+
<tr>
|
84
|
+
<td>
|
85
|
+
{{# scope }}
|
86
|
+
<span class="name">{{ scope }}[{{ name }}]</span>
|
87
|
+
{{/ scope }}
|
88
|
+
{{^ scope }}
|
89
|
+
<span class="name">{{ name }}</span>
|
90
|
+
{{/ scope }}
|
91
|
+
</td>
|
92
|
+
<td>
|
93
|
+
<span class="description">{{ description }}</span>
|
94
|
+
</td>
|
95
|
+
</tr>
|
96
|
+
{{/ response_fields }}
|
97
|
+
</tbody>
|
98
|
+
</table>
|
99
|
+
{{/ has_response_fields? }}
|
100
|
+
|
72
101
|
{{# requests }}
|
73
102
|
<h3>Request</h3>
|
74
103
|
|
@@ -3,20 +3,30 @@
|
|
3
3
|
## {{ description }}
|
4
4
|
|
5
5
|
### {{ http_method }} {{ route }}
|
6
|
-
|
7
6
|
{{# explanation }}
|
7
|
+
|
8
8
|
{{ explanation }}
|
9
9
|
{{/ explanation }}
|
10
|
-
|
11
10
|
{{# has_parameters? }}
|
11
|
+
|
12
12
|
### Parameters
|
13
13
|
{{# parameters }}
|
14
14
|
|
15
|
-
Name : {{ name }}
|
15
|
+
Name : {{ name }}{{# required }} *- required -*{{/ required }}
|
16
16
|
Description : {{ description }}
|
17
17
|
{{/ parameters }}
|
18
|
+
|
18
19
|
{{/ has_parameters? }}
|
20
|
+
{{# has_response_fields? }}
|
21
|
+
|
22
|
+
### Response Fields
|
23
|
+
{{# response_fields }}
|
24
|
+
|
25
|
+
Name : {{ name }}
|
26
|
+
Description : {{ description }}
|
27
|
+
{{/ response_fields }}
|
19
28
|
|
29
|
+
{{/ has_response_fields? }}
|
20
30
|
{{# requests }}
|
21
31
|
### Request
|
22
32
|
|
@@ -27,20 +37,20 @@ Description : {{ description }}
|
|
27
37
|
#### Route
|
28
38
|
|
29
39
|
<pre>{{ request_method }} {{ request_path }}</pre>
|
30
|
-
|
31
40
|
{{# request_query_parameters_text }}
|
41
|
+
|
32
42
|
#### Query Parameters
|
33
43
|
|
34
44
|
<pre>{{ request_query_parameters_text }}</pre>
|
35
45
|
{{/ request_query_parameters_text }}
|
36
|
-
|
37
46
|
{{# request_body }}
|
47
|
+
|
38
48
|
#### Body
|
39
49
|
|
40
50
|
<pre>{{{ request_body }}}</pre>
|
41
51
|
{{/ request_body }}
|
42
|
-
|
43
52
|
{{# curl }}
|
53
|
+
|
44
54
|
#### cURL
|
45
55
|
|
46
56
|
<pre class="request">{{ curl }}</pre>
|
@@ -63,6 +73,4 @@ Description : {{ description }}
|
|
63
73
|
<pre>{{{ response_body }}}</pre>
|
64
74
|
{{/ response_body }}
|
65
75
|
{{/ response_status }}
|
66
|
-
|
67
76
|
{{/ requests }}
|
68
|
-
|
@@ -6,8 +6,8 @@ h3. {{ http_method }} {{ route }}
|
|
6
6
|
|
7
7
|
{{# explanation }}
|
8
8
|
{{ explanation }}
|
9
|
-
{{/ explanation }}
|
10
9
|
|
10
|
+
{{/ explanation }}
|
11
11
|
{{# has_parameters? }}
|
12
12
|
h3. Parameters
|
13
13
|
{{# parameters }}
|
@@ -15,8 +15,17 @@ h3. Parameters
|
|
15
15
|
Name : {{ name }} {{# required }} *- required -*{{/ required }}
|
16
16
|
Description : {{ description }}
|
17
17
|
{{/ parameters }}
|
18
|
+
|
18
19
|
{{/ has_parameters? }}
|
20
|
+
{{# has_response_fields? }}
|
21
|
+
h3. Response Fields
|
22
|
+
{{# response_fields }}
|
19
23
|
|
24
|
+
Name : {{ name }}
|
25
|
+
Description : {{ description }}
|
26
|
+
{{/ response_fields }}
|
27
|
+
|
28
|
+
{{/ has_response_fields? }}
|
20
29
|
{{# requests }}
|
21
30
|
h3. Request
|
22
31
|
|
@@ -32,20 +41,20 @@ h4. Route
|
|
32
41
|
h4. Query Parameters
|
33
42
|
|
34
43
|
<pre>{{ request_query_parameters_text }}</pre>
|
35
|
-
{{/ request_query_parameters_text }}
|
36
44
|
|
45
|
+
{{/ request_query_parameters_text }}
|
37
46
|
{{# request_body }}
|
38
47
|
h4. Body
|
39
48
|
|
40
49
|
<pre>{{{ request_body }}}</pre>
|
41
|
-
{{/ request_body }}
|
42
50
|
|
51
|
+
{{/ request_body }}
|
43
52
|
{{# curl }}
|
44
53
|
h4. cURL
|
45
54
|
|
46
55
|
<pre class="request">{{ curl }}</pre>
|
47
|
-
{{/ curl }}
|
48
56
|
|
57
|
+
{{/ curl }}
|
49
58
|
{{# response_status }}
|
50
59
|
h3. Response
|
51
60
|
|
@@ -61,8 +70,7 @@ h4. Status
|
|
61
70
|
h4. Body
|
62
71
|
|
63
72
|
<pre>{{{ response_body }}}</pre>
|
73
|
+
|
64
74
|
{{/ response_body }}
|
65
75
|
{{/ response_status }}
|
66
|
-
|
67
76
|
{{/ requests }}
|
68
|
-
|
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:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Cahoon
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-
|
13
|
+
date: 2014-06-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
@@ -18,20 +18,20 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 3.0.0
|
22
22
|
- - ">="
|
23
23
|
- !ruby/object:Gem::Version
|
24
|
-
version:
|
24
|
+
version: 3.0.0
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
27
|
version_requirements: !ruby/object:Gem::Requirement
|
28
28
|
requirements:
|
29
29
|
- - "~>"
|
30
30
|
- !ruby/object:Gem::Version
|
31
|
-
version:
|
31
|
+
version: 3.0.0
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 3.0.0
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: activesupport
|
37
37
|
requirement: !ruby/object:Gem::Requirement
|
@@ -46,24 +46,13 @@ dependencies:
|
|
46
46
|
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: 3.0.0
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: i18n
|
51
|
-
requirement: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - ">="
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 0.1.0
|
56
|
-
type: :runtime
|
57
|
-
prerelease: false
|
58
|
-
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 0.1.0
|
63
49
|
- !ruby/object:Gem::Dependency
|
64
50
|
name: mustache
|
65
51
|
requirement: !ruby/object:Gem::Requirement
|
66
52
|
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0.99'
|
67
56
|
- - ">="
|
68
57
|
- !ruby/object:Gem::Version
|
69
58
|
version: 0.99.4
|
@@ -71,6 +60,9 @@ dependencies:
|
|
71
60
|
prerelease: false
|
72
61
|
version_requirements: !ruby/object:Gem::Requirement
|
73
62
|
requirements:
|
63
|
+
- - "~>"
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0.99'
|
74
66
|
- - ">="
|
75
67
|
- !ruby/object:Gem::Version
|
76
68
|
version: 0.99.4
|
@@ -78,6 +70,9 @@ dependencies:
|
|
78
70
|
name: json
|
79
71
|
requirement: !ruby/object:Gem::Requirement
|
80
72
|
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.4'
|
81
76
|
- - ">="
|
82
77
|
- !ruby/object:Gem::Version
|
83
78
|
version: 1.4.6
|
@@ -85,6 +80,9 @@ dependencies:
|
|
85
80
|
prerelease: false
|
86
81
|
version_requirements: !ruby/object:Gem::Requirement
|
87
82
|
requirements:
|
83
|
+
- - "~>"
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '1.4'
|
88
86
|
- - ">="
|
89
87
|
- !ruby/object:Gem::Version
|
90
88
|
version: 1.4.6
|
@@ -92,114 +90,128 @@ dependencies:
|
|
92
90
|
name: fakefs
|
93
91
|
requirement: !ruby/object:Gem::Requirement
|
94
92
|
requirements:
|
95
|
-
- - "
|
93
|
+
- - "~>"
|
96
94
|
- !ruby/object:Gem::Version
|
97
|
-
version: '0'
|
95
|
+
version: '0.4'
|
98
96
|
type: :development
|
99
97
|
prerelease: false
|
100
98
|
version_requirements: !ruby/object:Gem::Requirement
|
101
99
|
requirements:
|
102
|
-
- - "
|
100
|
+
- - "~>"
|
103
101
|
- !ruby/object:Gem::Version
|
104
|
-
version: '0'
|
102
|
+
version: '0.4'
|
105
103
|
- !ruby/object:Gem::Dependency
|
106
104
|
name: sinatra
|
107
105
|
requirement: !ruby/object:Gem::Requirement
|
108
106
|
requirements:
|
109
|
-
- - "
|
107
|
+
- - "~>"
|
110
108
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
109
|
+
version: 1.4.4
|
112
110
|
type: :development
|
113
111
|
prerelease: false
|
114
112
|
version_requirements: !ruby/object:Gem::Requirement
|
115
113
|
requirements:
|
116
|
-
- - "
|
114
|
+
- - "~>"
|
117
115
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
116
|
+
version: 1.4.4
|
119
117
|
- !ruby/object:Gem::Dependency
|
120
118
|
name: aruba
|
121
119
|
requirement: !ruby/object:Gem::Requirement
|
122
120
|
requirements:
|
123
|
-
- - "
|
121
|
+
- - "~>"
|
124
122
|
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
123
|
+
version: '0.5'
|
126
124
|
type: :development
|
127
125
|
prerelease: false
|
128
126
|
version_requirements: !ruby/object:Gem::Requirement
|
129
127
|
requirements:
|
130
|
-
- - "
|
128
|
+
- - "~>"
|
131
129
|
- !ruby/object:Gem::Version
|
132
|
-
version: '0'
|
130
|
+
version: '0.5'
|
133
131
|
- !ruby/object:Gem::Dependency
|
134
132
|
name: capybara
|
135
133
|
requirement: !ruby/object:Gem::Requirement
|
136
134
|
requirements:
|
137
|
-
- - "
|
135
|
+
- - "~>"
|
138
136
|
- !ruby/object:Gem::Version
|
139
|
-
version: '
|
137
|
+
version: '2.2'
|
140
138
|
type: :development
|
141
139
|
prerelease: false
|
142
140
|
version_requirements: !ruby/object:Gem::Requirement
|
143
141
|
requirements:
|
144
|
-
- - "
|
142
|
+
- - "~>"
|
145
143
|
- !ruby/object:Gem::Version
|
146
|
-
version: '
|
144
|
+
version: '2.2'
|
147
145
|
- !ruby/object:Gem::Dependency
|
148
146
|
name: rake
|
149
147
|
requirement: !ruby/object:Gem::Requirement
|
150
148
|
requirements:
|
151
|
-
- - "
|
149
|
+
- - "~>"
|
152
150
|
- !ruby/object:Gem::Version
|
153
|
-
version: '
|
151
|
+
version: '10.1'
|
154
152
|
type: :development
|
155
153
|
prerelease: false
|
156
154
|
version_requirements: !ruby/object:Gem::Requirement
|
157
155
|
requirements:
|
158
|
-
- - "
|
156
|
+
- - "~>"
|
159
157
|
- !ruby/object:Gem::Version
|
160
|
-
version: '
|
158
|
+
version: '10.1'
|
161
159
|
- !ruby/object:Gem::Dependency
|
162
160
|
name: rack-test
|
163
161
|
requirement: !ruby/object:Gem::Requirement
|
164
162
|
requirements:
|
165
|
-
- - "
|
163
|
+
- - "~>"
|
166
164
|
- !ruby/object:Gem::Version
|
167
165
|
version: 0.6.2
|
168
166
|
type: :development
|
169
167
|
prerelease: false
|
170
168
|
version_requirements: !ruby/object:Gem::Requirement
|
171
169
|
requirements:
|
172
|
-
- - "
|
170
|
+
- - "~>"
|
173
171
|
- !ruby/object:Gem::Version
|
174
172
|
version: 0.6.2
|
175
173
|
- !ruby/object:Gem::Dependency
|
176
174
|
name: rack-oauth2
|
177
175
|
requirement: !ruby/object:Gem::Requirement
|
178
176
|
requirements:
|
179
|
-
- - "
|
177
|
+
- - "~>"
|
180
178
|
- !ruby/object:Gem::Version
|
181
|
-
version: 0.
|
179
|
+
version: 1.0.7
|
182
180
|
type: :development
|
183
181
|
prerelease: false
|
184
182
|
version_requirements: !ruby/object:Gem::Requirement
|
185
183
|
requirements:
|
186
|
-
- - "
|
184
|
+
- - "~>"
|
187
185
|
- !ruby/object:Gem::Version
|
188
|
-
version: 0.
|
186
|
+
version: 1.0.7
|
189
187
|
- !ruby/object:Gem::Dependency
|
190
188
|
name: webmock
|
191
189
|
requirement: !ruby/object:Gem::Requirement
|
192
190
|
requirements:
|
193
|
-
- - "
|
191
|
+
- - "~>"
|
194
192
|
- !ruby/object:Gem::Version
|
195
|
-
version: 1.7
|
193
|
+
version: '1.7'
|
196
194
|
type: :development
|
197
195
|
prerelease: false
|
198
196
|
version_requirements: !ruby/object:Gem::Requirement
|
199
197
|
requirements:
|
200
|
-
- - "
|
198
|
+
- - "~>"
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '1.7'
|
201
|
+
- !ruby/object:Gem::Dependency
|
202
|
+
name: rspec-its
|
203
|
+
requirement: !ruby/object:Gem::Requirement
|
204
|
+
requirements:
|
205
|
+
- - "~>"
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: '1.0'
|
208
|
+
type: :development
|
209
|
+
prerelease: false
|
210
|
+
version_requirements: !ruby/object:Gem::Requirement
|
211
|
+
requirements:
|
212
|
+
- - "~>"
|
201
213
|
- !ruby/object:Gem::Version
|
202
|
-
version: 1.
|
214
|
+
version: '1.0'
|
203
215
|
description: Generate API docs from your test suite
|
204
216
|
email:
|
205
217
|
- chris@smartlogicsolutions.com
|