swagger-docs 0.0.3 → 0.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: 93662e19d54d8714102ecfbd08e1ca88e360cd00
4
- data.tar.gz: 646f03361ada42fc36e8369bc602e00307b86b0d
3
+ metadata.gz: a75950a4aa93348fac017729155424b1874af4fd
4
+ data.tar.gz: 4e5999ac0013e7d6e97576266a389ffad061ae3d
5
5
  SHA512:
6
- metadata.gz: 868a3e56fc30ccee2ee8e636ab800d21398f4d5f4b0d8bf7867a302471e9c66841841a2332159f4e61a8311852b6bf9d437ff6135d685d60e6f04abedc0d2aad
7
- data.tar.gz: 709e92e1acbee458adfd53facc2f2be17308f6dfca0bfd7a6213eceb232d447686e8aea79d16a7d4e3e4f2e8c874e1b8a23ed2e6e052f6980cfefe44acfa0008
6
+ metadata.gz: 3ecb1013e18dba07d1ce736e0f0013fe8e55c1fd60e5e05a17a14e3a8ec745ff4f24fd0aa2fbb20ab1495390121657be931d3bceb8a77f0e0e98d237923f04e3
7
+ data.tar.gz: 41b87d5d7faa0d941cb2ef509099679ceb9ab5ee8c6d4814fc77239e3a69ec7314386cfee936084e76995d5e3fb26b231b4e51a992de33c08dac5cc4f8620adb
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ public
data/Appraisals ADDED
@@ -0,0 +1,7 @@
1
+ appraise "rails-3" do
2
+ gem "rails", "~> 3.2.16"
3
+ end
4
+
5
+ appraise "rails-4" do
6
+ gem "rails", "~> 4.0.0"
7
+ end
data/CHANGELOG.md ADDED
@@ -0,0 +1,22 @@
1
+ ## 0.1.0
2
+
3
+ - Add CHANGELOG.md
4
+ - Add `api_extension_type` option (support for other route .formats)
5
+ - Rails Appraisals
6
+ - Add configuration options table to README documentation
7
+ - Guidance on inheritance and asset pre-compilation
8
+ - Custom response message error text can now be set
9
+ - Ability to override base controller with `base_api_controller` method
10
+ - Default configuration for Generator
11
+
12
+ ##0.0.3
13
+
14
+ - Documentation
15
+
16
+ ## 0.0.2
17
+
18
+ - Add `base_path` option
19
+
20
+ ## 0.0.1
21
+
22
+ - Initial release
data/README.md CHANGED
@@ -4,7 +4,7 @@ Generates swagger-ui json files for rails apps with APIs. You add the swagger DS
4
4
 
5
5
  Here is an extract of the DSL from a user controller API class:
6
6
 
7
- ```
7
+ ```ruby
8
8
  swagger_controller :users, "User Management"
9
9
 
10
10
  swagger_api :index do
@@ -36,19 +36,72 @@ Or install it yourself as:
36
36
 
37
37
  Create an initializer in config/initializers (e.g. swagger_docs.rb) and define your APIs:
38
38
 
39
- ```
39
+ ```ruby
40
40
  Swagger::Docs::Config.register_apis({
41
41
  "1.0" => {
42
- :api_file_path => "public/api/v1/", # the output location where your .json files are written to
43
- :base_path => "http://api.somedomain.com", # the URL base path to your API
44
- :clean_directory => false # if you want to delete all .json files at each generation
42
+ # the extension used for the API
43
+ :api_extension_type => :json,
44
+ # the output location where your .json files are written to
45
+ :api_file_path => "public/api/v1/",
46
+ # the URL base path to your API
47
+ :base_path => "http://api.somedomain.com",
48
+ # if you want to delete all .json files at each generation
49
+ :clean_directory => false
45
50
  }
46
- )
51
+ })
47
52
  ```
48
53
 
54
+ #### Configuration options
55
+
56
+ The following table shows all the current configuration options and their defaults. The default will be used if you don't supply your own value.
57
+
58
+ <table>
59
+ <thead>
60
+ <tr>
61
+ <th>Option</th>
62
+ <th>Description</th>
63
+ <th>Default</th>
64
+ </tr>
65
+ </thead>
66
+ <tbody>
67
+
68
+ <tr>
69
+ <td><b>api_extension_type</b></td>
70
+ <td>The extension, if necessary, used for your API - e.g. :json or :xml </td>
71
+ <td>nil</td>
72
+ </tr>
73
+
74
+ <tr>
75
+ <td><b>api_file_path</b></td>
76
+ <td>The output file path where generated swagger-docs files are written to. </td>
77
+ <td>public/</td>
78
+ </tr>
79
+
80
+ <tr>
81
+ <td><b>base_path</b></td>
82
+ <td>The URI base path for your API - e.g. api.somedomain.com</td>
83
+ <td>/</td>
84
+ </tr>
85
+
86
+ <tr>
87
+ <td><b>clean_directory</b></td>
88
+ <td>When generating swagger-docs files this option specifies if the api_file_path should be cleaned first. This means that all files will be deleted in the output directory first before any files are generated.</td>
89
+ <td>false</td>
90
+ </tr>
91
+
92
+ <tr>
93
+ <td><b>formatting</b></td>
94
+ <td>Specifies which formatting method to apply to the JSON that is written. Available options: :none, :pretty</td>
95
+ <td>:pretty</td>
96
+ </tr>
97
+
98
+ </tbody>
99
+ </table>
100
+
101
+
49
102
  ### Documenting a controller
50
103
 
51
- ```
104
+ ```ruby
52
105
  class Api::V1::UsersController < ApplicationController
53
106
 
54
107
  swagger_controller :users, "User Management"
@@ -113,12 +166,46 @@ A sample Rails application where you can run the above rake command and view the
113
166
 
114
167
  https://github.com/richhollis/swagger-docs-sample
115
168
 
169
+ ![Screen shot 1](https://github.com/richhollis/swagger-docs-sample/raw/master/swagger-docs-screenshot-2.png)
170
+
171
+
172
+ ### Advanced Customization
173
+
174
+ #### Inheriting from a custom Api controller
175
+
176
+ By default swagger-docs is applied to controllers inheriting from ApplicationController.
177
+ If this is not the case for your application, use this snippet in your initializer
178
+ _before_ calling Swagger::Docs::Config#register_apis(...).
179
+
180
+ ```ruby
181
+ class Swagger::Docs::Config
182
+ def self.base_api_controller; Api::ApiController end
183
+ end
184
+ ```
185
+
186
+ #### Precompile
187
+
188
+ It is best-practice *not* to keep documentation in version control. An easy way
189
+ to integrate swagger-docs into a conventional deployment setup (e.g. capistrano,
190
+ chef, or opsworks) is to piggyback on the 'assets:precompile' rake task. And don't forget
191
+ to add your api documentation directory to .gitignore in this case.
192
+
193
+ ```ruby
194
+ #Rakefile or lib/task/precompile_overrides.rake
195
+ namespace :assets do
196
+ task :precompile do
197
+ Rake::Task['assets:precompile'].invoke
198
+ Rake::Task['swagger:docs'].invoke
199
+ end
200
+ end
201
+ ```
202
+
116
203
  ### Output files
117
204
 
118
205
  api-docs.json output:
119
206
 
120
207
 
121
- ```
208
+ ```json
122
209
  {
123
210
  "apiVersion": "1.0",
124
211
  "swaggerVersion": "1.2",
@@ -134,7 +221,7 @@ api-docs.json output:
134
221
 
135
222
  users.json output:
136
223
 
137
- ```
224
+ ```json
138
225
  {
139
226
  "apiVersion": "1.0",
140
227
  "swaggerVersion": "1.2",
@@ -337,6 +424,10 @@ users.json output:
337
424
  }
338
425
  ```
339
426
 
427
+ ## Thanks to our contributors
428
+
429
+ Thanks to @jdar and all our contributors.
430
+
340
431
  ## Contributing
341
432
 
342
433
  1. Fork it
data/Rakefile CHANGED
@@ -1 +1,10 @@
1
+ require "rubygems"
2
+ require 'appraisal'
3
+ require "bundler/setup"
1
4
  require "bundler/gem_tasks"
5
+
6
+ require 'rspec/core/rake_task'
7
+
8
+ RSpec::Core::RakeTask.new(:spec)
9
+ task :default => :spec
10
+ task :test => :spec
@@ -2,8 +2,9 @@ module Swagger
2
2
  module Docs
3
3
  class Config
4
4
  class << self
5
+ def base_api_controller; ApplicationController end
5
6
  def register_apis(versions)
6
- ApplicationController.send(:include, ImpotentMethods)
7
+ base_api_controller.send(:include, ImpotentMethods)
7
8
  @versions = versions
8
9
  end
9
10
  def registered_apis
@@ -12,4 +13,4 @@ module Swagger
12
13
  end
13
14
  end
14
15
  end
15
- end
16
+ end
@@ -45,7 +45,7 @@ module Swagger
45
45
  def response(status, text = nil, model = nil)
46
46
  if status.is_a? Symbol
47
47
  status_code = Rack::Utils.status_code(status)
48
- response_messages << {:code => status_code, :message => status.to_s.titleize}
48
+ response_messages << {:code => status_code, :message => text || status.to_s.titleize}
49
49
  else
50
50
  response_messages << {:code => status, :message => text}
51
51
  end
@@ -1,6 +1,15 @@
1
1
  module Swagger
2
2
  module Docs
3
3
  class Generator
4
+
5
+ DEFAULT_VER = "1.0"
6
+ DEFAULT_CONFIG = {
7
+ :api_file_path => "public/",
8
+ :base_path => "/",
9
+ :clean_directory => false,
10
+ :formatting => :pretty
11
+ }
12
+
4
13
  class << self
5
14
 
6
15
  def camelize_keys_deep!(h)
@@ -17,8 +26,9 @@ module Swagger
17
26
  end
18
27
  end
19
28
 
20
- def get_api_path(spec)
21
- path_api = trim_leading_slash(spec.to_s.gsub("(.:format)", ""))
29
+ def get_api_path(spec, extension)
30
+ extension = ".#{extension}" if extension
31
+ path_api = trim_leading_slash(spec.to_s.gsub("(.:format)", extension.to_s))
22
32
  parts_new = []
23
33
  path_api.split("/").each do |path_part|
24
34
  part = path_part
@@ -48,20 +58,20 @@ module Swagger
48
58
  end
49
59
 
50
60
  def set_real_methods
51
- ApplicationController.send(:include, Methods) # replace impotent methods with live ones
61
+ Config.base_api_controller.send(:include, Methods) # replace impotent methods with live ones
52
62
  end
53
63
 
54
- def write_docs(apis)
64
+ def write_docs(apis = nil)
65
+ apis ||= Config.registered_apis
55
66
  results = {}
56
67
  set_real_methods
57
- unless Config.registered_apis.empty?
58
- Config.registered_apis.each do |api_version,config|
68
+ unless apis.empty?
69
+ apis.each do |api_version,config|
70
+ config.reverse_merge!(DEFAULT_CONFIG)
59
71
  results[api_version] = write_doc(api_version, config)
60
72
  end
61
73
  else
62
- config = {:api_file_path => "public/", :base_path => "/"}
63
- puts "No swagger_docs config: Using default config #{config}"
64
- results["1.0"] = write_doc("1.0", config)
74
+ results[DEFAULT_VER] = write_doc(DEFAULT_VER, DEFAULT_CONFIG)
65
75
  end
66
76
  results
67
77
  end
@@ -99,23 +109,32 @@ module Swagger
99
109
  operations = Hash[operations.map {|k, v| [k.to_s.gsub("@","").to_sym, v] }] # rename :@instance hash keys
100
110
  operations[:method] = verb
101
111
  operations[:nickname] = "#{path.camelize}##{action}"
102
- apis << {:path => trim_slashes(get_api_path(trim_leading_slash(route.path.spec.to_s)).gsub("#{controller_base_path}","")), :operations => [operations]}
112
+ apis << {:path => trim_slashes(get_api_path(trim_leading_slash(route.path.spec.to_s), config[:api_extension_type]).gsub("#{controller_base_path}","")), :operations => [operations]}
103
113
  end
104
114
  demod = "#{debased_path.to_s.camelize}".demodulize.camelize.underscore
105
115
  resource = header.merge({:resource_path => "#{demod}", :apis => apis})
106
116
  camelize_keys_deep!(resource)
107
117
  # write controller resource file
108
- File.open("#{api_file_path}/#{demod}.json", 'w') { |file| file.write(resource.to_json) }
118
+ write_to_file "#{api_file_path}/#{demod}.json", resource, config
109
119
  # append resource to resources array (for writing out at end)
110
120
  resources[:apis] << {path: "#{trim_leading_slash(debased_path)}.{format}", description: klass.swagger_config[:description]}
111
121
  results[:processed] << path
112
122
  end
113
123
  # write master resource file
114
124
  camelize_keys_deep!(resources)
115
- File.open("#{api_file_path}/api-docs.json", 'w') { |file| file.write(resources.to_json) }
125
+
126
+ write_to_file "#{api_file_path}/api-docs.json", resources, config
116
127
  results
117
128
  end
129
+
130
+ def write_to_file(path, structure, config={})
131
+ content = case config[:formatting]
132
+ when :pretty; JSON.pretty_generate structure
133
+ else; structure.to_json
134
+ end
135
+ File.open(path, 'w') { |file| file.write content }
136
+ end
118
137
  end
119
138
  end
120
139
  end
121
- end
140
+ end
@@ -1,5 +1,5 @@
1
1
  module Swagger
2
2
  module Docs
3
- VERSION = "0.0.3"
3
+ VERSION = "0.1.0"
4
4
  end
5
5
  end
@@ -1,14 +1,15 @@
1
1
  module Api
2
2
  module V1
3
- class SampleController < ApplicationController
4
-
3
+ class SuperclassController < ApplicationController
4
+ end
5
+ class SampleController < SuperclassController
5
6
  swagger_controller :users, "User Management"
6
7
 
7
8
  swagger_api :index do
8
9
  summary "Fetches all User items"
9
10
  param :query, :page, :integer, :optional, "Page number"
10
11
  response :unauthorized
11
- response :not_acceptable
12
+ response :not_acceptable, "The request you made is not acceptable"
12
13
  response :requested_range_not_satisfiable
13
14
  end
14
15
 
@@ -49,4 +50,4 @@ module Api
49
50
 
50
51
  end
51
52
  end
52
- end
53
+ end
@@ -30,9 +30,11 @@ describe Swagger::Docs::Generator do
30
30
  ]}
31
31
 
32
32
  context "without controller base path" do
33
- let(:config) { Swagger::Docs::Config.register_apis({
34
- "1.0" => {:api_file_path => "#{TMP_DIR}api/v1/", :base_path => "http://api.no.where"}
35
- })}
33
+ let(:config) {
34
+ {
35
+ DEFAULT_VER => {:api_file_path => "#{TMP_DIR}api/v1/", :base_path => "http://api.no.where"}
36
+ }
37
+ }
36
38
  before(:each) do
37
39
  Rails.stub_chain(:application, :routes, :routes).and_return(routes)
38
40
  Swagger::Docs::Generator.set_real_methods
@@ -40,7 +42,7 @@ describe Swagger::Docs::Generator do
40
42
  generate(config)
41
43
  end
42
44
  context "resources files" do
43
- let(:resources) { File.read(FILE_RESOURCES)}
45
+ let(:resources) { FILE_RESOURCES.read }
44
46
  let(:response) { JSON.parse(resources) }
45
47
  it "writes basePath correctly" do
46
48
  expect(response["basePath"]).to eq "http://api.no.where/"
@@ -53,7 +55,7 @@ describe Swagger::Docs::Generator do
53
55
  end
54
56
  end
55
57
  context "resource file" do
56
- let(:resource) { File.read(FILE_RESOURCE)}
58
+ let(:resource) { FILE_RESOURCE.read }
57
59
  let(:response) { JSON.parse(resource) }
58
60
  let(:first) { response["apis"].first }
59
61
  let(:operations) { first["operations"] }
@@ -79,7 +81,7 @@ describe Swagger::Docs::Generator do
79
81
 
80
82
  context "with controller base path" do
81
83
  let(:config) { Swagger::Docs::Config.register_apis({
82
- "1.0" => {:controller_base_path => "api/v1", :api_file_path => "#{TMP_DIR}api/v1/", :base_path => "http://api.no.where"}
84
+ DEFAULT_VER => {:controller_base_path => "api/v1", :api_file_path => "#{TMP_DIR}api/v1/", :base_path => "http://api.no.where"}
83
85
  })}
84
86
  before(:each) do
85
87
  Rails.stub_chain(:application, :routes, :routes).and_return(routes)
@@ -89,48 +91,63 @@ describe Swagger::Docs::Generator do
89
91
 
90
92
  context "test suite initialization" do
91
93
  it "the resources file does not exist" do
92
- expect(File.exists?(FILE_RESOURCES)).to be_false
94
+ expect(FILE_RESOURCES).to_not exist
93
95
  end
94
96
  it "the resource file does not exist" do
95
- expect(File.exists?(FILE_RESOURCE)).to be_false
97
+ expect(FILE_RESOURCE).to_not exist
96
98
  end
97
99
  end
98
100
 
99
101
  describe "#write_docs" do
102
+ context "no apis registered" do
103
+ before(:each) do
104
+ Swagger::Docs::Config.register_apis({})
105
+ end
106
+ it "generates using default config" do
107
+ results = generate({})
108
+ expect(results[DEFAULT_VER][:processed].count).to eq 1
109
+ end
110
+ end
100
111
  before(:each) do
101
112
  generate(config)
102
113
  end
103
114
  it "cleans json files in directory when set" do
104
- file_to_delete = "#{TMP_DIR}api/v1/delete_me.json"
115
+ file_to_delete = TMP_DIR+"api/v1/delete_me.json"
105
116
  File.open(file_to_delete, 'w') {|f| f.write("{}") }
106
- expect(File.exists?(file_to_delete)).to be_true
107
- config["1.0"][:clean_directory] = true
117
+ expect(file_to_delete).to exist
118
+ config[DEFAULT_VER][:clean_directory] = true
108
119
  generate(config)
109
- expect(File.exists?(file_to_delete)).to be_false
120
+ expect(file_to_delete).to_not exist
110
121
  end
111
122
  it "keeps non json files in directory when cleaning" do
112
- file_to_keep = "#{TMP_DIR}api/v1/keep_me"
123
+ file_to_keep = TMP_DIR+"api/v1/keep_me"
113
124
  File.open(file_to_keep, 'w') {|f| f.write("{}") }
114
- config["1.0"][:clean_directory] = true
125
+ config[DEFAULT_VER][:clean_directory] = true
115
126
  generate(config)
116
- expect(File.exists?(file_to_keep)).to be_true
127
+ expect(file_to_keep).to exist
117
128
  end
118
129
  it "writes the resources file" do
119
- expect(File.exists?(FILE_RESOURCES)).to be_true
130
+ expect(FILE_RESOURCES).to exist
120
131
  end
121
132
  it "writes the resource file" do
122
- expect(File.exists?(FILE_RESOURCE)).to be_true
133
+ expect(FILE_RESOURCE).to exist
123
134
  end
124
135
  it "returns results hash" do
125
136
  results = generate(config)
126
- expect(results["1.0"][:processed].count).to eq 1
127
- expect(results["1.0"][:skipped].count).to eq 1
137
+ expect(results[DEFAULT_VER][:processed].count).to eq 1
138
+ expect(results[DEFAULT_VER][:skipped].count).to eq 1
139
+ end
140
+ it "writes pretty json files when set" do
141
+ config[DEFAULT_VER][:formatting] = :pretty
142
+ generate(config)
143
+ resources = File.read FILE_RESOURCES
144
+ expect(resources.scan(/\n/).length).to be > 1
128
145
  end
129
146
  context "resources files" do
130
- let(:resources) { File.read(FILE_RESOURCES)}
147
+ let(:resources) { FILE_RESOURCES.read }
131
148
  let(:response) { JSON.parse(resources) }
132
149
  it "writes version correctly" do
133
- expect(response["apiVersion"]).to eq "1.0"
150
+ expect(response["apiVersion"]).to eq DEFAULT_VER
134
151
  end
135
152
  it "writes swaggerVersion correctly" do
136
153
  expect(response["swaggerVersion"]).to eq "1.2"
@@ -149,7 +166,7 @@ describe Swagger::Docs::Generator do
149
166
  end
150
167
  end
151
168
  context "resource file" do
152
- let(:resource) { File.read(FILE_RESOURCE)}
169
+ let(:resource) { FILE_RESOURCE.read }
153
170
  let(:response) { JSON.parse(resource) }
154
171
  let(:first) { response["apis"].first }
155
172
  let(:operations) { first["operations"] }
@@ -157,7 +174,7 @@ describe Swagger::Docs::Generator do
157
174
  let(:response_msgs) { operations.first["responseMessages"] }
158
175
  # {"apiVersion":"1.0","swaggerVersion":"1.2","basePath":"/api/v1","resourcePath":"/sample"
159
176
  it "writes version correctly" do
160
- expect(response["apiVersion"]).to eq "1.0"
177
+ expect(response["apiVersion"]).to eq DEFAULT_VER
161
178
  end
162
179
  it "writes swaggerVersion correctly" do
163
180
  expect(response["swaggerVersion"]).to eq "1.2"
@@ -174,9 +191,14 @@ describe Swagger::Docs::Generator do
174
191
  context "first api" do
175
192
  #"apis":[{"path":" /sample","operations":[{"summary":"Fetches all User items"
176
193
  #,"method":"get","nickname":"Api::V1::Sample#index"}]
177
- it "writes path correctly" do
194
+ it "writes path correctly when api extension type is not set" do
178
195
  expect(first["path"]).to eq "sample"
179
196
  end
197
+ it "writes path correctly when api extension type is set" do
198
+ config[DEFAULT_VER][:api_extension_type] = :json
199
+ generate(config)
200
+ expect(first["path"]).to eq "sample.json"
201
+ end
180
202
  it "writes summary correctly" do
181
203
  expect(operations.first["summary"]).to eq "Fetches all User items"
182
204
  end
@@ -218,9 +240,12 @@ describe Swagger::Docs::Generator do
218
240
  it "writes message correctly" do
219
241
  expect(response_msgs.first["message"]).to eq "Unauthorized"
220
242
  end
243
+ it "writes specified message correctly" do
244
+ expect(response_msgs[1]["message"]).to eq "The request you made is not acceptable"
245
+ end
221
246
  end
222
247
  end
223
248
  end
224
249
  end
225
250
  end
226
- end
251
+ end
data/spec/spec_helper.rb CHANGED
@@ -2,11 +2,14 @@ require "rails"
2
2
  require "swagger/docs"
3
3
  require "ostruct"
4
4
  require "json"
5
+ require 'pathname'
5
6
 
6
- TMP_DIR = "/tmp/swagger-docs/"
7
- TMP_API_DIR = "/tmp/swagger-docs/api/v1/"
8
- FILE_RESOURCES = "#{TMP_API_DIR}api-docs.json"
9
- FILE_RESOURCE = "#{TMP_API_DIR}sample.json"
7
+ DEFAULT_VER = Swagger::Docs::Generator::DEFAULT_VER
8
+
9
+ TMP_DIR = Pathname.new "/tmp/swagger-docs/"
10
+ TMP_API_DIR = TMP_DIR+"api/v1"
11
+ FILE_RESOURCES = TMP_API_DIR+"api-docs.json"
12
+ FILE_RESOURCE = TMP_API_DIR+"sample.json"
10
13
 
11
14
  RSpec.configure do |config|
12
15
  config.expect_with :rspec do |c|
data/swagger-docs.gemspec CHANGED
@@ -26,4 +26,5 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency "rake"
27
27
  spec.add_development_dependency "rspec"
28
28
  spec.add_development_dependency "rails"
29
+ spec.add_development_dependency "appraisal"
29
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swagger-docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rich Hollis
@@ -30,7 +30,7 @@ cert_chain:
30
30
  RYcsqDfanYBx7QcftOnbeQq7/Ep7Zx+W9+Ph3TiJLMLdAr7bLkgN1SjvrjTL5mQR
31
31
  FuQtYvE4LKiUQpG7vLTRB78dQBlSj9fnv2OM9w==
32
32
  -----END CERTIFICATE-----
33
- date: 2013-11-04 00:00:00.000000000 Z
33
+ date: 2014-02-04 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: bundler
@@ -88,6 +88,20 @@ dependencies:
88
88
  - - '>='
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
+ - !ruby/object:Gem::Dependency
92
+ name: appraisal
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
91
105
  description: Generates json files for rails apps to use with swagger-ui
92
106
  email:
93
107
  - richhollis@gmail.com
@@ -96,6 +110,8 @@ extensions: []
96
110
  extra_rdoc_files: []
97
111
  files:
98
112
  - .gitignore
113
+ - Appraisals
114
+ - CHANGELOG.md
99
115
  - Gemfile
100
116
  - LICENSE.txt
101
117
  - README.md
metadata.gz.sig CHANGED
Binary file