swagger-docs 0.0.3 → 0.1.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: 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