swagger-docs 0.1.9 → 0.2.0

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: 9c266ba841a5bdacb059df2348ef839408bb1b8b
4
- data.tar.gz: 85475fb831183dded5e7ed8b858e9c2df590350f
3
+ metadata.gz: 979bda39f8d785e5d599ae56058247e02b9c8335
4
+ data.tar.gz: d2e4e3cc8356e686e72376012249ca2ee1c00375
5
5
  SHA512:
6
- metadata.gz: d5919f6cdf9462d5074db8e1749e4ef518dec92e08148de8f005ce518b7b0c90b0fefe40f638997cff400ca27f1b78af23b87b1944989503cf461c4987130509
7
- data.tar.gz: 5511929b22b9b62174cacbe09ac160763337ccd600a2fb75b634445e29cbaba23ffce392fac3181ada7b38f7e6a3cb323e442533145277140faba98aeb768437
6
+ metadata.gz: f409fe0f7a4b448fbfe63c276c1ecb8faf5d9242e3f06d4864950c1df97a497542dc153c8a1b4b8c630d7d499e4040dae7ae58a45f89e6f0a7febea327a0062b
7
+ data.tar.gz: 7b6ec4109fea5d965160218f77a89b3630bc89987660556c703bb9cb2419c82263c87d076d2cb1d57a424515ae4f7d334cf88d59ebe7c68e5efd72e9ff1122d1
@@ -1,6 +1,10 @@
1
- ## 0.1.10
1
+ ## 0.2.0
2
2
 
3
- (next release - not released yet)
3
+ - Additional logging for generation failures (suggested in #81)
4
+ - Added api_file_name to config #88
5
+ - Add support for multiple base api controllers. #93
6
+ - Change success status to ok #89
7
+ - Address issue with missing slashes - remove trailing slash from base paths and add slash before api paths #117
4
8
 
5
9
  ## 0.1.9
6
10
 
data/README.md CHANGED
@@ -105,8 +105,8 @@ The following table shows all the current configuration options and their defaul
105
105
  </tr>
106
106
 
107
107
  <tr>
108
- <td><b>base_api_controller</b></td>
109
- <td>The base controller class your project uses; it or its subclasses will be where you call swagger_controller and swagger_api.</td>
108
+ <td><b>base_api_controller / base_api_controllers</b></td>
109
+ <td>The base controller class your project uses; it or its subclasses will be where you call swagger_controller and swagger_api. An array of base controller classes may be provided.</td>
110
110
  <td>ActionController::Base</td>
111
111
  </tr>
112
112
 
@@ -152,7 +152,7 @@ class Api::V1::UsersController < ApplicationController
152
152
  swagger_api :show do
153
153
  summary "Fetches a single User item"
154
154
  param :path, :id, :integer, :optional, "User Id"
155
- response :success, "Success", :User
155
+ response :ok, "Success", :User
156
156
  response :unauthorized
157
157
  response :not_acceptable
158
158
  response :not_found
@@ -228,6 +228,39 @@ end
228
228
 
229
229
  And then use it as a superclass to all you API controllers. All the subclassed controllers will have the same documentation applied to them.
230
230
 
231
+ #### Alternate method
232
+
233
+ Using a block for the swagger_api definition:
234
+
235
+ ```ruby
236
+ class Api::V1::UserController < Api::V1::BaseController
237
+
238
+ swagger_controller :user, "Users"
239
+
240
+ def self.add_common_params(api)
241
+ api.param :form, "user[first_name]", :string, :optional, "Notes"
242
+ api.param :form, "user[last_name]", :string, :optional, "Name"
243
+ api.param :form, "user[email]", :string, :optional, "Email"
244
+ end
245
+
246
+ swagger_api :create do |api|
247
+ summary "Create a new User item"
248
+ Api::V1::UserController::add_common_params(api)
249
+ response :unauthorized
250
+ response :not_acceptable
251
+ response :unprocessable_entity
252
+ end
253
+
254
+ swagger_api :update do |api|
255
+ summary "Update an existing User item"
256
+ Api::V1::UserController::add_common_params(api)
257
+ response :unauthorized
258
+ response :not_acceptable
259
+ response :unprocessable_entity
260
+ end
261
+ end
262
+ ```
263
+
231
264
  ### DSL Methods
232
265
 
233
266
  <table>
@@ -275,6 +308,20 @@ rake swagger:docs
275
308
 
276
309
  Swagger-ui JSON files should now be present in your api_file_path (e.g. ./public/api/v1)
277
310
 
311
+ #### Additional logging for generation failures
312
+
313
+ Errors aren't displayed by default. To see all error messages use the ```SD_LOG_LEVEL``` environment variable when running the rake task:
314
+
315
+ ```
316
+ SD_LOG_LEVEL=1 rake swagger:docs
317
+ ```
318
+
319
+ Currently only constantize errors are shown.
320
+
321
+ Errors are written to ```$stderr```. Error logging methods can be found in ```Config``` and can be overridden for custom behaviour.
322
+
323
+ Thanks to **[@tomtt](https://github.com/tomtt/)** who originally suggested this idea in #81
324
+
278
325
  ### Sample
279
326
 
280
327
  A sample Rails application where you can run the above rake command and view the output in swagger-ui can be found here:
@@ -660,6 +707,9 @@ Thanks to jdar, fotinakis, stevschmid, ldnunes, aaronrenner and all of our contr
660
707
 
661
708
  **[@fotinakis](https://github.com/fotinakis/)** has created Swagger::Blocks - a DSL for pure Ruby code blocks: [swagger-blocks](https://github.com/fotinakis/swagger-blocks/)
662
709
 
710
+ A [cors rack middleware for testing swagger apis](https://gist.github.com/richhollis/b98a8b0599860145ad86) designed to be used in Rails development environments.
711
+
712
+
663
713
  ## More About Me
664
714
 
665
715
  [Rich Hollis](http://richhollis.co.uk)
@@ -8,10 +8,16 @@ module Swagger
8
8
  @@base_api_controller || ActionController::Base
9
9
  end
10
10
 
11
+ def base_api_controllers
12
+ Array(base_api_controller)
13
+ end
14
+
11
15
  def base_api_controller=(controller)
12
16
  @@base_api_controller = controller
13
17
  end
14
18
 
19
+ alias_method :base_api_controllers=, :base_api_controller=
20
+
15
21
  def base_applications
16
22
  Array(base_application)
17
23
  end
@@ -21,7 +27,9 @@ module Swagger
21
27
  end
22
28
 
23
29
  def register_apis(versions)
24
- base_api_controller.send(:include, ImpotentMethods)
30
+ base_api_controllers.each do |controller|
31
+ controller.send(:include, ImpotentMethods)
32
+ end
25
33
  @versions = versions
26
34
  end
27
35
 
@@ -33,6 +41,22 @@ module Swagger
33
41
  # This is only for overriding, so don't perform any path transformations by default.
34
42
  path
35
43
  end
44
+
45
+ def log_exception
46
+ yield
47
+ rescue => e
48
+ write_log(:error, e)
49
+ raise
50
+ end
51
+
52
+ def log_env_name
53
+ 'SD_LOG_LEVEL'
54
+ end
55
+
56
+ def write_log(type, output)
57
+ $stderr.puts output if type == :error and ENV[log_env_name]=="1"
58
+ end
59
+
36
60
  end
37
61
  end
38
62
  end
@@ -58,6 +58,7 @@ module Swagger
58
58
 
59
59
  def response(status, text = nil, model = nil)
60
60
  if status.is_a? Symbol
61
+ status == :ok if status == :success
61
62
  status_code = Rack::Utils.status_code(status)
62
63
  response_messages << {:code => status_code, :responseModel => model, :message => text || status.to_s.titleize}
63
64
  else
@@ -5,6 +5,7 @@ module Swagger
5
5
  DEFAULT_VER = "1.0"
6
6
  DEFAULT_CONFIG = {
7
7
  :api_file_path => "public/",
8
+ :api_file_name => "api-docs.json",
8
9
  :base_path => "/",
9
10
  :clean_directory => false,
10
11
  :formatting => :pretty
@@ -13,7 +14,10 @@ module Swagger
13
14
  class << self
14
15
 
15
16
  def set_real_methods
16
- Config.base_api_controller.send(:include, Methods) # replace impotent methods with live ones
17
+ # replace impotent methods with live ones
18
+ Config.base_api_controllers.each do |controller|
19
+ controller.send(:include, Methods)
20
+ end
17
21
  end
18
22
 
19
23
  def write_docs(apis = nil)
@@ -30,7 +34,7 @@ module Swagger
30
34
  resources = root.delete 'resources'
31
35
  root.merge!(config[:attributes] || {}) # merge custom user attributes like info
32
36
  # write the api-docs file
33
- write_to_file("#{settings[:api_file_path]}/api-docs.json", root, config)
37
+ write_to_file("#{settings[:api_file_path]}/#{config[:api_file_name]}", root, config)
34
38
  # write the individual resource files
35
39
  resources.each do |resource|
36
40
  resource_file_path = resource.delete 'resourceFilePath'
@@ -57,7 +61,7 @@ module Swagger
57
61
  end
58
62
 
59
63
  def generate_doc(api_version, settings, config)
60
- root = { "apiVersion" => api_version, "swaggerVersion" => "1.2", "basePath" => settings[:base_path] + "/", :apis => [] }
64
+ root = { "apiVersion" => api_version, "swaggerVersion" => "1.2", "basePath" => settings[:base_path], :apis => [] }
61
65
  results = {:processed => [], :skipped => []}
62
66
  resources = []
63
67
 
@@ -68,7 +72,7 @@ module Swagger
68
72
  resources << generate_resource(ret[:path], ret[:apis], ret[:models], settings, root, config)
69
73
  debased_path = get_debased_path(ret[:path], settings[:controller_base_path])
70
74
  resource_api = {
71
- path: "#{Config.transform_path(trim_leading_slash(debased_path), api_version)}.{format}",
75
+ path: "/#{Config.transform_path(trim_leading_slash(debased_path), api_version)}.{format}",
72
76
  description: ret[:klass].swagger_config[:description]
73
77
  }
74
78
  root[:apis] << resource_api
@@ -86,7 +90,7 @@ module Swagger
86
90
  api_path.gsub!('(.:format)', extension ? ".#{extension}" : '')
87
91
  api_path.gsub!(/:(\w+)/, '{\1}')
88
92
  api_path.gsub!(controller_base_path, '')
89
- trim_slashes(api_path)
93
+ "/" + trim_slashes(api_path)
90
94
  end
91
95
 
92
96
  def camelize_keys_deep!(h)
@@ -123,7 +127,7 @@ module Swagger
123
127
 
124
128
  def process_path(path, root, config, settings)
125
129
  return {action: :skipped, reason: :empty_path} if path.empty?
126
- klass = "#{path.to_s.camelize}Controller".constantize rescue nil
130
+ klass = Config.log_exception { "#{path.to_s.camelize}Controller".constantize } rescue nil
127
131
  return {action: :skipped, path: path, reason: :klass_not_present} if !klass
128
132
  return {action: :skipped, path: path, reason: :not_swagger_resource} if !klass.methods.include?(:swagger_config) or !klass.swagger_config[:controller]
129
133
  apis, models, defined_nicknames = [], {}, []
@@ -1,5 +1,5 @@
1
1
  module Swagger
2
2
  module Docs
3
- VERSION = "0.1.9"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -9,7 +9,7 @@ module Api
9
9
  summary "Fetches all User items"
10
10
  param :query, :page, :integer, :optional, "Page number"
11
11
  param :path, :nested_id, :integer, :optional, "Team Id"
12
- response :success, "Some text", :Tag
12
+ response :ok, "Some text", :Tag
13
13
  response :unauthorized
14
14
  response :not_acceptable, "The request you made is not acceptable"
15
15
  response :requested_range_not_satisfiable
@@ -63,7 +63,7 @@ module Api
63
63
  swagger_api :context_dependent do
64
64
  summary "An action dependent on the context of the controller " +
65
65
  "class. Right now it is: " + ApplicationController.context
66
- response :success
66
+ response :ok
67
67
  response :unauthorized
68
68
  end
69
69
 
@@ -6,7 +6,7 @@ describe Swagger::Docs::Config do
6
6
 
7
7
  let(:test_controller) { Class.new }
8
8
 
9
- before(:each) do
9
+ before(:each) do
10
10
  stub_const('ActionController::Base', ApplicationController)
11
11
  end
12
12
 
@@ -19,7 +19,17 @@ describe Swagger::Docs::Config do
19
19
  it "allows assignment of another class" do
20
20
  subject.base_api_controller = test_controller
21
21
  expect(subject.base_api_controller).to eq(test_controller)
22
- end
22
+ end
23
+ end
24
+
25
+ describe "::base_api_controllers" do
26
+ it "returns an array with ActionController::Base by default" do
27
+ expect(subject.base_api_controllers).to eq([ActionController::Base])
28
+ end
29
+ it "allows assignment of multiple classes" do
30
+ subject.base_api_controllers = [test_controller, ActionController::Base]
31
+ expect(subject.base_api_controllers).to eq([test_controller, ActionController::Base])
32
+ end
23
33
  end
24
34
 
25
35
  describe "::base_application" do
@@ -35,5 +45,4 @@ describe Swagger::Docs::Config do
35
45
  end
36
46
  end
37
47
 
38
-
39
48
  end
@@ -6,8 +6,8 @@ describe Swagger::Docs::SwaggerDSL do
6
6
 
7
7
  describe "#response" do
8
8
  it "adds code, responseModel and message to response_messages" do
9
- subject.response(:success, "Some sample text", "Tag")
10
- expect(subject.response_messages).to eq([{:code=>500, :responseModel=>"Tag", :message=>"Some sample text"}])
9
+ subject.response(:ok, "Some sample text", "Tag")
10
+ expect(subject.response_messages).to eq([{:code=>200, :responseModel=>"Tag", :message=>"Some sample text"}])
11
11
  end
12
12
  end
13
13
 
@@ -32,7 +32,7 @@ describe Swagger::Docs::Generator do
32
32
  context "without controller base path" do
33
33
  let(:config) {
34
34
  {
35
- DEFAULT_VER => {:api_file_path => "#{tmp_dir}", :base_path => "http://api.no.where"}
35
+ DEFAULT_VER => {:api_file_path => "#{tmp_dir}", :base_path => "http://api.no.where/"}
36
36
  }
37
37
  }
38
38
  before(:each) do
@@ -45,13 +45,24 @@ describe Swagger::Docs::Generator do
45
45
  let(:resources) { file_resources.read }
46
46
  let(:response) { JSON.parse(resources) }
47
47
  it "writes basePath correctly" do
48
- expect(response["basePath"]).to eq "http://api.no.where/"
48
+ expect(response["basePath"]).to eq "http://api.no.where"
49
49
  end
50
50
  it "writes apis correctly" do
51
51
  expect(response["apis"].count).to eq 1
52
52
  end
53
53
  it "writes api path correctly" do
54
- expect(response["apis"][0]["path"]).to eq "api/v1/sample.{format}"
54
+ expect(response["apis"][0]["path"]).to eq "/api/v1/sample.{format}"
55
+ end
56
+
57
+ context "api_file_name" do
58
+ let(:api_file_name) { 'swagger-docs.json' }
59
+ let(:config) {{
60
+ DEFAULT_VER => {
61
+ :api_file_path => tmp_dir,
62
+ :api_file_name => api_file_name }
63
+ }}
64
+ let(:file_resources) { tmp_dir + api_file_name }
65
+ specify { expect(File.exists? file_resources).to be true }
55
66
  end
56
67
  end
57
68
  context "resource file" do
@@ -61,7 +72,7 @@ describe Swagger::Docs::Generator do
61
72
  let(:operations) { first["operations"] }
62
73
  # {"apiVersion":"1.0","swaggerVersion":"1.2","basePath":"/api/v1","resourcePath":"/sample"
63
74
  it "writes basePath correctly" do
64
- expect(response["basePath"]).to eq "http://api.no.where/"
75
+ expect(response["basePath"]).to eq "http://api.no.where"
65
76
  end
66
77
  it "writes resourcePath correctly" do
67
78
  expect(response["resourcePath"]).to eq "sample"
@@ -73,7 +84,7 @@ describe Swagger::Docs::Generator do
73
84
  #"apis":[{"path":" /sample","operations":[{"summary":"Fetches all User items"
74
85
  #,"method":"get","nickname":"Api::V1::Sample#index"}]
75
86
  it "writes path correctly" do
76
- expect(first["path"]).to eq "api/v1/sample"
87
+ expect(first["path"]).to eq "/api/v1/sample"
77
88
  end
78
89
  end
79
90
  end
@@ -81,7 +92,7 @@ describe Swagger::Docs::Generator do
81
92
 
82
93
  context "with controller base path" do
83
94
  let(:config) { Swagger::Docs::Config.register_apis({
84
- DEFAULT_VER => {:controller_base_path => "api/v1", :api_file_path => "#{tmp_dir}", :base_path => "http://api.no.where",
95
+ DEFAULT_VER => {:controller_base_path => "api/v1", :api_file_path => "#{tmp_dir}", :base_path => "http://api.no.where/",
85
96
  :attributes => {
86
97
  :info => {
87
98
  "title" => "Swagger Sample App",
@@ -182,13 +193,13 @@ describe Swagger::Docs::Generator do
182
193
  expect(response["swaggerVersion"]).to eq "1.2"
183
194
  end
184
195
  it "writes basePath correctly" do
185
- expect(response["basePath"]).to eq "http://api.no.where/api/v1/"
196
+ expect(response["basePath"]).to eq "http://api.no.where/api/v1"
186
197
  end
187
198
  it "writes apis correctly" do
188
199
  expect(response["apis"].count).to eq 2
189
200
  end
190
201
  it "writes api path correctly" do
191
- expect(response["apis"][0]["path"]).to eq "sample.{format}"
202
+ expect(response["apis"][0]["path"]).to eq "/sample.{format}"
192
203
  end
193
204
  it "writes api description correctly" do
194
205
  expect(response["apis"][0]["description"]).to eq "User Management"
@@ -200,8 +211,8 @@ describe Swagger::Docs::Generator do
200
211
  let(:apis) { response["apis"] }
201
212
  context "apis" do
202
213
  context "show" do
203
- let(:api) { get_api_operation(apis, "nested/{nested_id}/nested_sample", :get) }
204
- let(:operations) { get_api_operations(apis, "nested/{nested_id}/nested_sample") }
214
+ let(:api) { get_api_operation(apis, "/nested/{nested_id}/nested_sample", :get) }
215
+ let(:operations) { get_api_operations(apis, "/nested/{nested_id}/nested_sample") }
205
216
  context "parameters" do
206
217
  it "has correct count" do
207
218
  expect(api["parameters"].count).to eq 2
@@ -222,7 +233,7 @@ describe Swagger::Docs::Generator do
222
233
  expect(response["swaggerVersion"]).to eq "1.2"
223
234
  end
224
235
  it "writes basePath correctly" do
225
- expect(response["basePath"]).to eq "http://api.no.where/api/v1/"
236
+ expect(response["basePath"]).to eq "http://api.no.where/api/v1"
226
237
  end
227
238
  it "writes resourcePath correctly" do
228
239
  expect(response["resourcePath"]).to eq "sample"
@@ -251,17 +262,17 @@ describe Swagger::Docs::Generator do
251
262
  end
252
263
  context "apis" do
253
264
  context "index" do
254
- let(:api) { get_api_operation(apis, "sample", :get) }
255
- let(:operations) { get_api_operations(apis, "sample") }
265
+ let(:api) { get_api_operation(apis, "/sample", :get) }
266
+ let(:operations) { get_api_operations(apis, "/sample") }
256
267
  #"apis":[{"path":" /sample","operations":[{"summary":"Fetches all User items"
257
268
  #,"method":"get","nickname":"Api::V1::Sample#index"}]
258
269
  it "writes path correctly when api extension type is not set" do
259
- expect(apis.first["path"]).to eq "sample"
270
+ expect(apis.first["path"]).to eq "/sample"
260
271
  end
261
272
  it "writes path correctly when api extension type is set" do
262
273
  config[DEFAULT_VER][:api_extension_type] = :json
263
274
  generate(config)
264
- expect(apis.first["path"]).to eq "sample.json"
275
+ expect(apis.first["path"]).to eq "/sample.json"
265
276
  end
266
277
  it "writes summary correctly" do
267
278
  expect(operations.first["summary"]).to eq "Fetches all User items"
@@ -275,6 +286,9 @@ describe Swagger::Docs::Generator do
275
286
  it "writes responseModel attribute" do
276
287
  expect(api["responseMessages"].find{|m| m["responseModel"] == "Tag"}).to_not be_nil
277
288
  end
289
+ it "writes response code as 200" do
290
+ expect(api["responseMessages"].find{|m| m["responseModel"] == "Tag"}["code"]).to eq 200
291
+ end
278
292
  #"parameters"=>[
279
293
  # {"paramType"=>"query", "name"=>"page", "type"=>"integer", "description"=>"Page number", "required"=>false},
280
294
  # {"paramType"=>"path", "name"=>"nested_id", "type"=>"integer", "description"=>"Team Id", "required"=>false}], "responseMessages"=>[{"code"=>401, "message"=>"Unauthorized"}, {"code"=>406, "message"=>"The request you made is not acceptable"}, {"code"=>416, "message"=>"Requested Range Not Satisfiable"}], "method"=>"get", "nickname"=>"Api::V1::Sample#index"}
@@ -301,7 +315,7 @@ describe Swagger::Docs::Generator do
301
315
  end
302
316
  end
303
317
  context "list parameter" do
304
- let(:api) { get_api_operation(apis, "sample", :patch) }
318
+ let(:api) { get_api_operation(apis, "/sample", :patch) }
305
319
  let(:params) {api["parameters"] }
306
320
  it "writes description correctly" do
307
321
  expect(params[3]["description"]).to eq "Role"
@@ -314,18 +328,18 @@ describe Swagger::Docs::Generator do
314
328
  expect(response_msgs.count).to eq 4
315
329
  end
316
330
  it "writes code correctly" do
317
- expect(response_msgs.first["code"]).to eq 401
331
+ expect(response_msgs.first["code"]).to eq 200
318
332
  end
319
333
  it "writes message correctly" do
320
- expect(response_msgs.first["message"]).to eq "Unauthorized"
334
+ expect(response_msgs.first["message"]).to eq "Some text"
321
335
  end
322
336
  it "writes specified message correctly" do
323
- expect(response_msgs[1]["message"]).to eq "The request you made is not acceptable"
337
+ expect(response_msgs[1]["message"]).to eq "Unauthorized"
324
338
  end
325
339
  end
326
340
  end
327
341
  context "create" do
328
- let(:api) { get_api_operation(apis, "sample", :patch) }
342
+ let(:api) { get_api_operation(apis, "/sample", :patch) }
329
343
  it "writes list parameter values correctly" do
330
344
  expected_param = {"valueType"=>"LIST", "values"=>["admin", "superadmin", "user"]}
331
345
  expected_body = {"paramType"=>"body", "name"=>"body", "type"=>"json", "description"=>"JSON formatted body", "required"=>true}
@@ -339,7 +353,7 @@ describe Swagger::Docs::Generator do
339
353
  end
340
354
  end
341
355
  context "update" do
342
- let(:api) { get_api_operation(apis, "sample/{id}", :put) }
356
+ let(:api) { get_api_operation(apis, "/sample/{id}", :put) }
343
357
  it "writes notes correctly" do
344
358
  expect(api["notes"]).to eq "Only the given fields are updated."
345
359
  end
@@ -19,8 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.cert_chain = ['certs/gem-public_cert.pem']
23
- spec.signing_key = File.expand_path("~/.gemcert/gem-private_key.pem") if $0 =~ /gem\z/
22
+ #spec.cert_chain = ['certs/gem-public_cert.pem']
23
+ #spec.signing_key = File.expand_path("~/.gemcert/gem-private_key.pem") if $0 =~ /gem\z/
24
24
 
25
25
  spec.add_development_dependency "bundler", "~> 1.3"
26
26
  spec.add_development_dependency "rake", "~> 10"
metadata CHANGED
@@ -1,36 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swagger-docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rich Hollis
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMRMwEQYDVQQDDApyaWNo
14
- aG9sbGlzMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNj
15
- b20wHhcNMTMxMDIyMTMwMzI3WhcNMTQxMDIyMTMwMzI3WjBBMRMwEQYDVQQDDApy
16
- aWNoaG9sbGlzMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZ
17
- FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDppQTU++yinAuC
18
- ydu87c/vDGTmE5Go9/zI48/T0kTco+JbUn4BPUaK0DWCEpZULvqwQAqVQm8JQnIU
19
- 6Z3k1tAQbhtgbG2oWNIxyC7SyXMQw/ag5qoAhw6k3DFE+jGKrREzADFb7vG+nPYp
20
- 4yinx27jCTIAv7/z2AVt6HoHOYh1s0HniJQWCebi7QgNXboMY8MpFxSwNkcFjl14
21
- KMSf9SX7iOyiwqgcJmN0fN4be8pH5j/EdinUL1rWlwldcUo2+6LChBswRPmtdaZv
22
- UyICuX5VfVJA0KrA/ihIMLaZVO5esFso+YrpP+QgbvhLwhn5e/sB5dr3a+y0+GJZ
23
- zPGtm60bAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
24
- BBShIiKLL1E1JG++RUVAOSPO7rZV0TAfBgNVHREEGDAWgRRyaWNoaG9sbGlzQGdt
25
- YWlsLmNvbTAfBgNVHRIEGDAWgRRyaWNoaG9sbGlzQGdtYWlsLmNvbTANBgkqhkiG
26
- 9w0BAQUFAAOCAQEAe4P1TzJlVhUn60Wx/431wNnuHZS9K4gSzmNr4zuZU6lP3rxx
27
- rMsSY1nJY1nTBqX9W62hO+KS14ncbZvNU59ao5YVXHDflEB3Yz20DP9E2Uws64Bx
28
- ify0Dwuq4VV2PiQbczuTGhGupzQpkMttWNZqVdjDbH5k8sGx3MumNX7YUJwUerhZ
29
- bTBme5soNyJzAeWBqCBPT9p98rC6vqhcBfAVF6RbERYL6MPyoBZWqGeuMR4H2X/v
30
- RYcsqDfanYBx7QcftOnbeQq7/Ep7Zx+W9+Ph3TiJLMLdAr7bLkgN1SjvrjTL5mQR
31
- FuQtYvE4LKiUQpG7vLTRB78dQBlSj9fnv2OM9w==
32
- -----END CERTIFICATE-----
33
- date: 2014-09-10 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2016-01-13 00:00:00.000000000 Z
34
12
  dependencies:
35
13
  - !ruby/object:Gem::Dependency
36
14
  name: bundler
@@ -186,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
164
  version: '0'
187
165
  requirements: []
188
166
  rubyforge_project:
189
- rubygems_version: 2.2.2
167
+ rubygems_version: 2.4.8
190
168
  signing_key:
191
169
  specification_version: 4
192
170
  summary: Generates swagger-ui json files for rails apps with APIs. You add the swagger
@@ -1,2 +0,0 @@
1
- +�B�;=Ї0��-g�ӥ�x���޸�[}�`0yM��"���f�xMZ-%9�^�vk S�Fb{�7��
2
- )'�|�>��U��f *��������C��j {�=O:���╬~a��ĩ`ۧo���w����URR��k�M6�4���8�x K�����u�;|��
data.tar.gz.sig DELETED
@@ -1,3 +0,0 @@
1
- ��n��Ҵ~)8��!@zs��7p��XZ� ����-���Ws7���3ۘ��۲��
2
- `�:�Վ"���Z�1p �;.`K�v+#O� ���ۢl��Q�,M!�P�O��S�.�w���(�Q�"`���@8����>�˜�k��|v+i��^C�_�>��&�c;$�uϮ?����
3
- �"�b��>{ _]D<���cQ�Ł��$�?������|�Q�DoK���l��
metadata.gz.sig DELETED
@@ -1,4 +0,0 @@
1
- Y�(
2
- Q�~屗2(0P�ރY��V�E���� ��H��$"��^���/�Zޱ�dVW9���[�K~Q�hs=/�Hrp�I)'I�R.�r�7<�Wc����(�<n:��?w������D��ҤV�w�]p��G��'3���)�|cn|�7�)���ǂA�nE+נ�-J�H$4q��*�����
3
- q]�No�� �u�whC:_����5�l�Q�k��>
4
- P!.��GA�c����u;+���Rrp����&|��