rspec_api_documentation 3.0.0 → 3.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7cbc2ff27b6b9f2442e946657e47fc88c2c3e6ee
4
- data.tar.gz: a8f1639743ba2ecfed6c625231ecc3506c025d25
3
+ metadata.gz: b7e6c19ee26d9e8b093eda724140422fd0752308
4
+ data.tar.gz: 852e00b740d884e07466feebfbfbf34dd98b18f4
5
5
  SHA512:
6
- metadata.gz: f84d994ca272c1802358f4aa89d0549af42fa03f8fc8abc840e229ac1f74d828cd9758bb8d5e541b6314f75cefe6639390ad2b979ea889469178a040be70c50e
7
- data.tar.gz: d3f198afe1676a8abbadf41dfa8de83192128bed0dd293691cfeeded33766b7a0e08fff1fa2188a164c85da86cd218924bc27591e9206048c764c4508f508100
6
+ metadata.gz: b84b411b63bae9373d07dd30040a9c2dc64d789b6718d84da867f3774bb2a54731aa67fb2d5a530a1332d4562f3055e021e27c9087434de5b1c6be820fc02675
7
+ data.tar.gz: 6e994149dcb0875ca38ec9d6ad9a26d6f86e879294ffba13b5c1b4da4dc3f08b3ad37aec69cdc10c3e8baf44369b6284a5024cbaf5589e99c19893fb35c75c7b
@@ -3,6 +3,7 @@ require 'active_support/inflector'
3
3
  require 'cgi'
4
4
  require 'json'
5
5
 
6
+ # Namespace for RspecApiDocumentation
6
7
  module RspecApiDocumentation
7
8
  extend ActiveSupport::Autoload
8
9
 
@@ -32,6 +33,7 @@ module RspecApiDocumentation
32
33
  autoload :GeneralMarkupWriter
33
34
  autoload :HtmlWriter
34
35
  autoload :TextileWriter
36
+ autoload :MarkdownWriter
35
37
  autoload :JsonWriter
36
38
  autoload :AppendJsonWriter
37
39
  autoload :JsonIodocsWriter
@@ -49,6 +51,8 @@ module RspecApiDocumentation
49
51
  autoload :HtmlExample
50
52
  autoload :TextileIndex
51
53
  autoload :TextileExample
54
+ autoload :MarkdownIndex
55
+ autoload :MarkdownExample
52
56
  end
53
57
 
54
58
  def self.configuration
@@ -59,6 +63,13 @@ module RspecApiDocumentation
59
63
  @documentations ||= configuration.map { |config| ApiDocumentation.new(config) }
60
64
  end
61
65
 
66
+ # Configures RspecApiDocumentation
67
+ #
68
+ # See RspecApiDocumentation::Configuration for more information on configuring.
69
+ #
70
+ # RspecApiDocumentation.configure do |config|
71
+ # config.docs_dir = "doc/api"
72
+ # end
62
73
  def self.configure
63
74
  yield configuration if block_given?
64
75
  end
@@ -1,4 +1,7 @@
1
1
  module RspecApiDocumentation
2
+ # Base client class that documents all requests that go through it.
3
+ #
4
+ # client.get("/orders", { :page => 2 }, { "Accept" => "application/json" })
2
5
  class ClientBase < Struct.new(:context, :options)
3
6
  include Headers
4
7
 
@@ -13,6 +13,23 @@ module RspecApiDocumentation
13
13
  @groups ||= []
14
14
  end
15
15
 
16
+ # Defines a new sub configuration
17
+ #
18
+ # Automatically sets the `filter` to the group name, and the `docs_dir` to
19
+ # a subfolder of the parent's `doc_dir` named the group name.
20
+ #
21
+ # RspecApiDocumentation.configure do |config|
22
+ # config.docs_dir = "doc/api"
23
+ # config.define_group(:public) do |config|
24
+ # # Default values
25
+ # config.docs_dir = "doc/api/public"
26
+ # config.filter = :public
27
+ # end
28
+ # end
29
+ #
30
+ # Params:
31
+ # +name+:: String name of the group
32
+ # +block+:: Block configuration block
16
33
  def define_group(name, &block)
17
34
  subconfig = self.class.new(self)
18
35
  subconfig.filter = name
@@ -79,6 +96,7 @@ module RspecApiDocumentation
79
96
  @settings ||= {}
80
97
  end
81
98
 
99
+ # Yields itself and sub groups to hook into the Enumerable module
82
100
  def each(&block)
83
101
  yield self
84
102
  groups.map { |g| g.each &block }
@@ -2,6 +2,16 @@ require "rspec_api_documentation/dsl/resource"
2
2
  require "rspec_api_documentation/dsl/endpoint"
3
3
  require "rspec_api_documentation/dsl/callback"
4
4
 
5
+ # Custom describe block that sets metadata to enable the rest of RAD
6
+ #
7
+ # resource "Orders", :meta => :data do
8
+ # # ...
9
+ # end
10
+ #
11
+ # Params:
12
+ # +args+:: Glob of RSpec's `describe` arguments
13
+ # +block+:: Block to pass into describe
14
+ #
5
15
  def self.resource(*args, &block)
6
16
  options = if args.last.is_a?(Hash) then args.pop else {} end
7
17
  options[:api_doc_dsl] = :resource
@@ -1,4 +1,5 @@
1
1
  module RspecApiDocumentation::DSL
2
+ # DSL Methods for testing server callbacks
2
3
  module Callback
3
4
  extend ActiveSupport::Concern
4
5
 
@@ -3,6 +3,7 @@ require 'rack/utils'
3
3
  require 'rack/test/utils'
4
4
 
5
5
  module RspecApiDocumentation::DSL
6
+ # DSL methods available inside the RSpec example.
6
7
  module Endpoint
7
8
  extend ActiveSupport::Concern
8
9
  include Rack::Test::Utils
@@ -23,6 +24,7 @@ module RspecApiDocumentation::DSL
23
24
  end
24
25
 
25
26
  private
27
+
26
28
  # from rspec-core
27
29
  def relative_path(line)
28
30
  line = line.sub(File.expand_path("."), ".")
@@ -1,4 +1,5 @@
1
1
  module RspecApiDocumentation::DSL
2
+ # DSL methods available at the example group level
2
3
  module Resource
3
4
  extend ActiveSupport::Concern
4
5
 
@@ -0,0 +1,16 @@
1
+ module RspecApiDocumentation
2
+ module Views
3
+ class MarkdownExample < MarkupExample
4
+ EXTENSION = 'markdown'
5
+
6
+ def initialize(example, configuration)
7
+ super
8
+ self.template_name = "rspec_api_documentation/markdown_example"
9
+ end
10
+
11
+ def extension
12
+ EXTENSION
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ module RspecApiDocumentation
2
+ module Views
3
+ class MarkdownIndex < MarkupIndex
4
+ def initialize(index, configuration)
5
+ super
6
+ self.template_name = "rspec_api_documentation/markdown_index"
7
+ end
8
+
9
+ def examples
10
+ @index.examples.map { |example| MarkdownExample.new(example, @configuration) }
11
+ end
12
+ end
13
+ end
14
+ end
@@ -3,7 +3,7 @@ require 'rspec_api_documentation/writers/json_writer'
3
3
  module RspecApiDocumentation
4
4
  module Writers
5
5
  class CombinedJsonWriter < Writer
6
- def self.write(index, configuration)
6
+ def write
7
7
  File.open(configuration.docs_dir.join("combined.json"), "w+") do |f|
8
8
  examples = []
9
9
  index.examples.each do |rspec_example|
@@ -1,7 +1,7 @@
1
1
  module RspecApiDocumentation
2
2
  module Writers
3
3
  class CombinedTextWriter < Writer
4
- def self.write(index, configuration)
4
+ def write
5
5
  index.examples.each do |rspec_example|
6
6
  example = CombinedTextExample.new(rspec_example)
7
7
  FileUtils.mkdir_p(configuration.docs_dir.join(example.resource_name))
@@ -1,8 +1,10 @@
1
1
  module RspecApiDocumentation
2
2
  module Writers
3
+ # Base class for writers that write HTML
3
4
  class GeneralMarkupWriter < Writer
4
5
  INDEX_FILE_NAME = 'index'
5
6
 
7
+ # Write out the generated documentation
6
8
  def write
7
9
  File.open(configuration.docs_dir.join(index_file_name + '.' + extension), "w+") do |f|
8
10
  f.write markup_index_class.new(index, configuration).render
@@ -0,0 +1,19 @@
1
+ module RspecApiDocumentation
2
+ module Writers
3
+ class MarkdownWriter < GeneralMarkupWriter
4
+ EXTENSION = 'markdown'
5
+
6
+ def markup_index_class
7
+ RspecApiDocumentation::Views::MarkdownIndex
8
+ end
9
+
10
+ def markup_example_class
11
+ RspecApiDocumentation::Views::MarkdownExample
12
+ end
13
+
14
+ def extension
15
+ EXTENSION
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,68 @@
1
+ # {{ resource_name }} API
2
+
3
+ ## {{ description }}
4
+
5
+ ### {{ http_method }} {{ route }}
6
+
7
+ {{# explanation }}
8
+ {{ explanation }}
9
+ {{/ explanation }}
10
+
11
+ {{# has_parameters? }}
12
+ ### Parameters
13
+ {{# parameters }}
14
+
15
+ Name : {{ name }} {{# required }} *- required -*{{/ required }}
16
+ Description : {{ description }}
17
+ {{/ parameters }}
18
+ {{/ has_parameters? }}
19
+
20
+ {{# requests }}
21
+ ### Request
22
+
23
+ #### Headers
24
+
25
+ <pre>{{ request_headers_text }}</pre>
26
+
27
+ #### Route
28
+
29
+ <pre>{{ request_method }} {{ request_path }}</pre>
30
+
31
+ {{# request_query_parameters_text }}
32
+ #### Query Parameters
33
+
34
+ <pre>{{ request_query_parameters_text }}</pre>
35
+ {{/ request_query_parameters_text }}
36
+
37
+ {{# request_body }}
38
+ #### Body
39
+
40
+ <pre>{{{ request_body }}}</pre>
41
+ {{/ request_body }}
42
+
43
+ {{# curl }}
44
+ #### cURL
45
+
46
+ <pre class="request">{{ curl }}</pre>
47
+ {{/ curl }}
48
+
49
+ {{# response_status }}
50
+ ### Response
51
+
52
+ #### Headers
53
+
54
+ <pre>{{ response_headers_text }}</pre>
55
+
56
+ #### Status
57
+
58
+ <pre>{{ response_status }} {{ response_status_text}}</pre>
59
+
60
+ {{# response_body }}
61
+ #### Body
62
+
63
+ <pre>{{{ response_body }}}</pre>
64
+ {{/ response_body }}
65
+ {{/ response_status }}
66
+
67
+ {{/ requests }}
68
+
@@ -0,0 +1,10 @@
1
+ # {{ api_name }}
2
+
3
+ {{# sections }}
4
+ ## {{ resource_name }}
5
+
6
+ {{# examples }}
7
+ * [{{ description }}]({{ dirname }}/{{ filename }})
8
+ {{/ examples }}
9
+
10
+ {{/ sections }}
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: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Cahoon
@@ -10,188 +10,194 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-04-15 00:00:00.000000000 Z
13
+ date: 2014-05-27 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - '>='
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: 2.14.0
22
+ - - ">="
20
23
  - !ruby/object:Gem::Version
21
24
  version: 2.14.0
22
25
  type: :runtime
23
26
  prerelease: false
24
27
  version_requirements: !ruby/object:Gem::Requirement
25
28
  requirements:
26
- - - '>='
29
+ - - "~>"
30
+ - !ruby/object:Gem::Version
31
+ version: 2.14.0
32
+ - - ">="
27
33
  - !ruby/object:Gem::Version
28
34
  version: 2.14.0
29
35
  - !ruby/object:Gem::Dependency
30
36
  name: activesupport
31
37
  requirement: !ruby/object:Gem::Requirement
32
38
  requirements:
33
- - - '>='
39
+ - - ">="
34
40
  - !ruby/object:Gem::Version
35
41
  version: 3.0.0
36
42
  type: :runtime
37
43
  prerelease: false
38
44
  version_requirements: !ruby/object:Gem::Requirement
39
45
  requirements:
40
- - - '>='
46
+ - - ">="
41
47
  - !ruby/object:Gem::Version
42
48
  version: 3.0.0
43
49
  - !ruby/object:Gem::Dependency
44
50
  name: i18n
45
51
  requirement: !ruby/object:Gem::Requirement
46
52
  requirements:
47
- - - '>='
53
+ - - ">="
48
54
  - !ruby/object:Gem::Version
49
55
  version: 0.1.0
50
56
  type: :runtime
51
57
  prerelease: false
52
58
  version_requirements: !ruby/object:Gem::Requirement
53
59
  requirements:
54
- - - '>='
60
+ - - ">="
55
61
  - !ruby/object:Gem::Version
56
62
  version: 0.1.0
57
63
  - !ruby/object:Gem::Dependency
58
64
  name: mustache
59
65
  requirement: !ruby/object:Gem::Requirement
60
66
  requirements:
61
- - - '>='
67
+ - - ">="
62
68
  - !ruby/object:Gem::Version
63
69
  version: 0.99.4
64
70
  type: :runtime
65
71
  prerelease: false
66
72
  version_requirements: !ruby/object:Gem::Requirement
67
73
  requirements:
68
- - - '>='
74
+ - - ">="
69
75
  - !ruby/object:Gem::Version
70
76
  version: 0.99.4
71
77
  - !ruby/object:Gem::Dependency
72
78
  name: json
73
79
  requirement: !ruby/object:Gem::Requirement
74
80
  requirements:
75
- - - '>='
81
+ - - ">="
76
82
  - !ruby/object:Gem::Version
77
83
  version: 1.4.6
78
84
  type: :runtime
79
85
  prerelease: false
80
86
  version_requirements: !ruby/object:Gem::Requirement
81
87
  requirements:
82
- - - '>='
88
+ - - ">="
83
89
  - !ruby/object:Gem::Version
84
90
  version: 1.4.6
85
91
  - !ruby/object:Gem::Dependency
86
92
  name: fakefs
87
93
  requirement: !ruby/object:Gem::Requirement
88
94
  requirements:
89
- - - '>='
95
+ - - ">="
90
96
  - !ruby/object:Gem::Version
91
97
  version: '0'
92
98
  type: :development
93
99
  prerelease: false
94
100
  version_requirements: !ruby/object:Gem::Requirement
95
101
  requirements:
96
- - - '>='
102
+ - - ">="
97
103
  - !ruby/object:Gem::Version
98
104
  version: '0'
99
105
  - !ruby/object:Gem::Dependency
100
106
  name: sinatra
101
107
  requirement: !ruby/object:Gem::Requirement
102
108
  requirements:
103
- - - '>='
109
+ - - ">="
104
110
  - !ruby/object:Gem::Version
105
111
  version: '0'
106
112
  type: :development
107
113
  prerelease: false
108
114
  version_requirements: !ruby/object:Gem::Requirement
109
115
  requirements:
110
- - - '>='
116
+ - - ">="
111
117
  - !ruby/object:Gem::Version
112
118
  version: '0'
113
119
  - !ruby/object:Gem::Dependency
114
120
  name: aruba
115
121
  requirement: !ruby/object:Gem::Requirement
116
122
  requirements:
117
- - - '>='
123
+ - - ">="
118
124
  - !ruby/object:Gem::Version
119
125
  version: '0'
120
126
  type: :development
121
127
  prerelease: false
122
128
  version_requirements: !ruby/object:Gem::Requirement
123
129
  requirements:
124
- - - '>='
130
+ - - ">="
125
131
  - !ruby/object:Gem::Version
126
132
  version: '0'
127
133
  - !ruby/object:Gem::Dependency
128
134
  name: capybara
129
135
  requirement: !ruby/object:Gem::Requirement
130
136
  requirements:
131
- - - '>='
137
+ - - ">="
132
138
  - !ruby/object:Gem::Version
133
139
  version: '0'
134
140
  type: :development
135
141
  prerelease: false
136
142
  version_requirements: !ruby/object:Gem::Requirement
137
143
  requirements:
138
- - - '>='
144
+ - - ">="
139
145
  - !ruby/object:Gem::Version
140
146
  version: '0'
141
147
  - !ruby/object:Gem::Dependency
142
148
  name: rake
143
149
  requirement: !ruby/object:Gem::Requirement
144
150
  requirements:
145
- - - '>='
151
+ - - ">="
146
152
  - !ruby/object:Gem::Version
147
153
  version: '0'
148
154
  type: :development
149
155
  prerelease: false
150
156
  version_requirements: !ruby/object:Gem::Requirement
151
157
  requirements:
152
- - - '>='
158
+ - - ">="
153
159
  - !ruby/object:Gem::Version
154
160
  version: '0'
155
161
  - !ruby/object:Gem::Dependency
156
162
  name: rack-test
157
163
  requirement: !ruby/object:Gem::Requirement
158
164
  requirements:
159
- - - '>='
165
+ - - ">="
160
166
  - !ruby/object:Gem::Version
161
167
  version: 0.6.2
162
168
  type: :development
163
169
  prerelease: false
164
170
  version_requirements: !ruby/object:Gem::Requirement
165
171
  requirements:
166
- - - '>='
172
+ - - ">="
167
173
  - !ruby/object:Gem::Version
168
174
  version: 0.6.2
169
175
  - !ruby/object:Gem::Dependency
170
176
  name: rack-oauth2
171
177
  requirement: !ruby/object:Gem::Requirement
172
178
  requirements:
173
- - - '>='
179
+ - - ">="
174
180
  - !ruby/object:Gem::Version
175
181
  version: 0.14.4
176
182
  type: :development
177
183
  prerelease: false
178
184
  version_requirements: !ruby/object:Gem::Requirement
179
185
  requirements:
180
- - - '>='
186
+ - - ">="
181
187
  - !ruby/object:Gem::Version
182
188
  version: 0.14.4
183
189
  - !ruby/object:Gem::Dependency
184
190
  name: webmock
185
191
  requirement: !ruby/object:Gem::Requirement
186
192
  requirements:
187
- - - '>='
193
+ - - ">="
188
194
  - !ruby/object:Gem::Version
189
195
  version: 1.7.0
190
196
  type: :development
191
197
  prerelease: false
192
198
  version_requirements: !ruby/object:Gem::Requirement
193
199
  requirements:
194
- - - '>='
200
+ - - ">="
195
201
  - !ruby/object:Gem::Version
196
202
  version: 1.7.0
197
203
  description: Generate API docs from your test suite
@@ -204,44 +210,49 @@ extensions: []
204
210
  extra_rdoc_files: []
205
211
  files:
206
212
  - lib/rspec_api_documentation.rb
207
- - lib/tasks/docs.rake
208
- - lib/rspec_api_documentation/rack_test_client.rb
213
+ - lib/rspec_api_documentation/api_documentation.rb
209
214
  - lib/rspec_api_documentation/api_formatter.rb
215
+ - lib/rspec_api_documentation/client_base.rb
216
+ - lib/rspec_api_documentation/configuration.rb
210
217
  - lib/rspec_api_documentation/curl.rb
211
- - lib/rspec_api_documentation/index.rb
212
- - lib/rspec_api_documentation/headers.rb
213
- - lib/rspec_api_documentation/oauth2_mac_client.rb
218
+ - lib/rspec_api_documentation/dsl.rb
214
219
  - lib/rspec_api_documentation/dsl/callback.rb
215
220
  - lib/rspec_api_documentation/dsl/endpoint.rb
216
221
  - lib/rspec_api_documentation/dsl/resource.rb
217
- - lib/rspec_api_documentation/dsl.rb
222
+ - lib/rspec_api_documentation/example.rb
223
+ - lib/rspec_api_documentation/headers.rb
224
+ - lib/rspec_api_documentation/index.rb
225
+ - lib/rspec_api_documentation/oauth2_mac_client.rb
226
+ - lib/rspec_api_documentation/rack_test_client.rb
227
+ - lib/rspec_api_documentation/railtie.rb
228
+ - lib/rspec_api_documentation/test_server.rb
218
229
  - lib/rspec_api_documentation/views/html_example.rb
219
230
  - lib/rspec_api_documentation/views/html_index.rb
231
+ - lib/rspec_api_documentation/views/markdown_example.rb
232
+ - lib/rspec_api_documentation/views/markdown_index.rb
233
+ - lib/rspec_api_documentation/views/markup_example.rb
234
+ - lib/rspec_api_documentation/views/markup_index.rb
220
235
  - lib/rspec_api_documentation/views/textile_example.rb
221
236
  - lib/rspec_api_documentation/views/textile_index.rb
222
- - lib/rspec_api_documentation/views/markup_index.rb
223
- - lib/rspec_api_documentation/views/markup_example.rb
224
237
  - lib/rspec_api_documentation/writers/append_json_writer.rb
225
- - lib/rspec_api_documentation/writers/textile_writer.rb
238
+ - lib/rspec_api_documentation/writers/combined_json_writer.rb
239
+ - lib/rspec_api_documentation/writers/combined_text_writer.rb
240
+ - lib/rspec_api_documentation/writers/formatter.rb
226
241
  - lib/rspec_api_documentation/writers/general_markup_writer.rb
227
242
  - lib/rspec_api_documentation/writers/html_writer.rb
228
- - lib/rspec_api_documentation/writers/json_iodocs_writer.rb
229
243
  - lib/rspec_api_documentation/writers/index_helper.rb
244
+ - lib/rspec_api_documentation/writers/json_iodocs_writer.rb
230
245
  - lib/rspec_api_documentation/writers/json_writer.rb
246
+ - lib/rspec_api_documentation/writers/markdown_writer.rb
247
+ - lib/rspec_api_documentation/writers/textile_writer.rb
231
248
  - lib/rspec_api_documentation/writers/writer.rb
232
- - lib/rspec_api_documentation/writers/combined_json_writer.rb
233
- - lib/rspec_api_documentation/writers/formatter.rb
234
- - lib/rspec_api_documentation/writers/combined_text_writer.rb
235
- - lib/rspec_api_documentation/configuration.rb
236
- - lib/rspec_api_documentation/example.rb
237
- - lib/rspec_api_documentation/api_documentation.rb
238
- - lib/rspec_api_documentation/test_server.rb
239
- - lib/rspec_api_documentation/railtie.rb
240
- - lib/rspec_api_documentation/client_base.rb
241
- - templates/rspec_api_documentation/textile_example.mustache
249
+ - lib/tasks/docs.rake
250
+ - templates/rspec_api_documentation/html_example.mustache
242
251
  - templates/rspec_api_documentation/html_index.mustache
252
+ - templates/rspec_api_documentation/markdown_example.mustache
253
+ - templates/rspec_api_documentation/markdown_index.mustache
254
+ - templates/rspec_api_documentation/textile_example.mustache
243
255
  - templates/rspec_api_documentation/textile_index.mustache
244
- - templates/rspec_api_documentation/html_example.mustache
245
256
  homepage: http://smartlogicsolutions.com
246
257
  licenses:
247
258
  - MIT
@@ -252,18 +263,19 @@ require_paths:
252
263
  - lib
253
264
  required_ruby_version: !ruby/object:Gem::Requirement
254
265
  requirements:
255
- - - '>='
266
+ - - ">="
256
267
  - !ruby/object:Gem::Version
257
268
  version: '0'
258
269
  required_rubygems_version: !ruby/object:Gem::Requirement
259
270
  requirements:
260
- - - '>='
271
+ - - ">="
261
272
  - !ruby/object:Gem::Version
262
273
  version: 1.3.6
263
274
  requirements: []
264
275
  rubyforge_project:
265
- rubygems_version: 2.0.14
276
+ rubygems_version: 2.2.2
266
277
  signing_key:
267
278
  specification_version: 4
268
279
  summary: A double black belt for your docs
269
280
  test_files: []
281
+ has_rdoc: