restapi 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +0 -1
- data/Gemfile.lock +0 -10
- data/README.rdoc +18 -12
- data/app/controllers/restapi/restapis_controller.rb +28 -1
- data/app/views/layouts/restapi/restapi.html.erb +1 -0
- data/app/views/restapi/restapis/_params.html.erb +22 -0
- data/app/views/restapi/restapis/_params_plain.html.erb +16 -0
- data/app/views/restapi/restapis/index.html.erb +5 -5
- data/app/views/restapi/restapis/method.html.erb +8 -4
- data/app/views/restapi/restapis/plain.html.erb +70 -0
- data/app/views/restapi/restapis/resource.html.erb +16 -5
- data/app/views/restapi/restapis/static.html.erb +4 -6
- data/lib/restapi.rb +2 -1
- data/lib/restapi/application.rb +72 -22
- data/lib/restapi/client/generator.rb +104 -0
- data/lib/restapi/client/template/Gemfile.tt +5 -0
- data/lib/restapi/client/template/README.tt +3 -0
- data/lib/restapi/client/template/base.rb.tt +33 -0
- data/lib/restapi/client/template/bin.rb.tt +110 -0
- data/lib/restapi/client/template/cli.rb.tt +25 -0
- data/lib/restapi/client/template/cli_command.rb.tt +129 -0
- data/lib/restapi/client/template/client.rb.tt +10 -0
- data/lib/restapi/client/template/resource.rb.tt +17 -0
- data/lib/restapi/dsl_definition.rb +20 -2
- data/lib/restapi/error_description.rb +8 -2
- data/lib/restapi/extractor.rb +143 -0
- data/lib/restapi/extractor/collector.rb +113 -0
- data/lib/restapi/extractor/recorder.rb +122 -0
- data/lib/restapi/extractor/writer.rb +356 -0
- data/lib/restapi/helpers.rb +10 -5
- data/lib/restapi/markup.rb +12 -12
- data/lib/restapi/method_description.rb +52 -8
- data/lib/restapi/param_description.rb +6 -5
- data/lib/restapi/railtie.rb +1 -1
- data/lib/restapi/resource_description.rb +1 -1
- data/lib/restapi/restapi_module.rb +43 -0
- data/lib/restapi/validator.rb +70 -3
- data/lib/restapi/version.rb +1 -1
- data/lib/tasks/restapi.rake +120 -121
- data/restapi.gemspec +0 -2
- data/spec/controllers/restapis_controller_spec.rb +41 -6
- data/spec/controllers/users_controller_spec.rb +51 -12
- data/spec/dummy/app/controllers/application_controller.rb +0 -2
- data/spec/dummy/app/controllers/twitter_example_controller.rb +4 -9
- data/spec/dummy/app/controllers/users_controller.rb +13 -6
- data/spec/dummy/config/initializers/restapi.rb +7 -0
- data/spec/dummy/doc/restapi_examples.yml +28 -0
- metadata +49 -76
- data/app/helpers/restapi/restapis_helper.rb +0 -31
data/restapi.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'fileutils'
|
2
3
|
|
3
4
|
describe Restapi::RestapisController do
|
4
5
|
|
@@ -16,13 +17,12 @@ describe Restapi::RestapisController do
|
|
16
17
|
|
17
18
|
RSpec::Matchers.define :reload_documentation do
|
18
19
|
match do
|
20
|
+
Restapi.should_receive(:reload_documentation)
|
21
|
+
get :index
|
19
22
|
begin
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
ret = Restapi.get_resource_description("users")._short_description == orig
|
24
|
-
ensure
|
25
|
-
Restapi.get_resource_description("users")._short_description.gsub!('Modified', "")
|
23
|
+
RSpec::Mocks.verify
|
24
|
+
rescue RSpec::Mocks::MockExpectationError
|
25
|
+
false
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -94,4 +94,39 @@ describe Restapi::RestapisController do
|
|
94
94
|
it { should_not reload_documentation }
|
95
95
|
end
|
96
96
|
end
|
97
|
+
|
98
|
+
describe "documentation cache" do
|
99
|
+
|
100
|
+
let(:cache_dir) { File.join(Rails.root, "tmp", "restapi-cache") }
|
101
|
+
|
102
|
+
before do
|
103
|
+
FileUtils.rm_r(cache_dir) if File.exists?(cache_dir)
|
104
|
+
FileUtils.mkdir_p(File.join(cache_dir, "apidoc", "resource"))
|
105
|
+
File.open(File.join(cache_dir, "apidoc.html"), "w") { |f| f << "apidoc.html cache" }
|
106
|
+
File.open(File.join(cache_dir, "apidoc.json"), "w") { |f| f << "apidoc.json cache" }
|
107
|
+
File.open(File.join(cache_dir, "apidoc", "resource.html"), "w") { |f| f << "resource.html cache" }
|
108
|
+
File.open(File.join(cache_dir, "apidoc", "resource", "method.html"), "w") { |f| f << "method.html cache" }
|
109
|
+
|
110
|
+
Restapi.configuration.use_cache = true
|
111
|
+
Restapi.configuration.cache_dir = cache_dir
|
112
|
+
end
|
113
|
+
|
114
|
+
after do
|
115
|
+
FileUtils.rm_r(cache_dir) if File.exists?(cache_dir)
|
116
|
+
end
|
117
|
+
|
118
|
+
it "uses the file in cache dir instead of generating the content on runtime" do
|
119
|
+
get :index
|
120
|
+
response.body.should == "apidoc.html cache"
|
121
|
+
get :index, :format => "html"
|
122
|
+
response.body.should == "apidoc.html cache"
|
123
|
+
get :index, :format => "json"
|
124
|
+
response.body.should == "apidoc.json cache"
|
125
|
+
get :index, :format => "html", :resource => "resource"
|
126
|
+
response.body.should == "resource.html cache"
|
127
|
+
get :index, :format => "html", :resource => "resource", :method => "method"
|
128
|
+
response.body.should == "method.html cache"
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
97
132
|
end
|
@@ -21,7 +21,7 @@ describe UsersController do
|
|
21
21
|
|
22
22
|
it "should contain all resource methods" do
|
23
23
|
methods = subject._methods
|
24
|
-
methods.count.should ==
|
24
|
+
methods.count.should == 5
|
25
25
|
methods.should include("users#show")
|
26
26
|
methods.should include("users#create")
|
27
27
|
methods.should include("users#index")
|
@@ -147,7 +147,7 @@ describe UsersController do
|
|
147
147
|
end
|
148
148
|
|
149
149
|
it "should work with Hash validator" do
|
150
|
-
post :create, :user => { :
|
150
|
+
post :create, :user => { :name => "root", :pass => "12345", :membership => "standard" }
|
151
151
|
assert_response :success
|
152
152
|
|
153
153
|
a = Restapi[UsersController, :create]
|
@@ -156,19 +156,19 @@ describe UsersController do
|
|
156
156
|
param.first.validator.class.should eq(Restapi::Validator::HashValidator)
|
157
157
|
hash_params = param.first.validator.hash_params_ordered
|
158
158
|
hash_params.count.should == 3
|
159
|
-
hash_params[0].name == :
|
160
|
-
hash_params[1].name == :
|
159
|
+
hash_params[0].name == :name
|
160
|
+
hash_params[1].name == :pass
|
161
161
|
hash_params[2].name == :membership
|
162
162
|
|
163
163
|
lambda {
|
164
|
-
post :create, :user => { :
|
164
|
+
post :create, :user => { :name => "root", :pass => "12345", :membership => "____" }
|
165
165
|
}.should raise_error(ArgumentError, / membership /)
|
166
166
|
|
167
167
|
lambda {
|
168
|
-
post :create, :user => { :
|
169
|
-
}.should raise_error(ArgumentError, /
|
168
|
+
post :create, :user => { :name => "root" }
|
169
|
+
}.should raise_error(ArgumentError, / pass /)
|
170
170
|
|
171
|
-
post :create, :user => { :
|
171
|
+
post :create, :user => { :name => "root", :pass => "pwd" }
|
172
172
|
assert_response :success
|
173
173
|
end
|
174
174
|
|
@@ -186,8 +186,8 @@ describe UsersController do
|
|
186
186
|
it "should allow nil when allow_nil is set to true" do
|
187
187
|
post :create,
|
188
188
|
:user => {
|
189
|
-
:
|
190
|
-
:
|
189
|
+
:name => "root",
|
190
|
+
:pass => "12345",
|
191
191
|
:membership => "standard",
|
192
192
|
},
|
193
193
|
:facts => nil
|
@@ -220,6 +220,29 @@ describe UsersController do
|
|
220
220
|
b.full_description.length.should be > 400
|
221
221
|
end
|
222
222
|
|
223
|
+
context "contain :see option" do
|
224
|
+
|
225
|
+
context "the key is valid" do
|
226
|
+
it "should contain reference to another method" do
|
227
|
+
api = Restapi[UsersController, :see_another]
|
228
|
+
api.see.should eq('users#create')
|
229
|
+
Restapi['users#see_another'].should eq(Restapi[UsersController, :see_another])
|
230
|
+
api.see_url.should eq(Restapi[UsersController, :create].doc_url)
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
context "the key is not valid" do
|
235
|
+
it "should raise exception" do
|
236
|
+
api = Restapi[UsersController, :see_another]
|
237
|
+
api.instance_variable_set :@see, 'doesnot#exist'
|
238
|
+
lambda {
|
239
|
+
api.see_url
|
240
|
+
}.should raise_error(ArgumentError, /does not exist/)
|
241
|
+
api.instance_variable_set :@see, nil
|
242
|
+
end
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
223
246
|
it "should contain possible errors description" do
|
224
247
|
a = Restapi.get_method_description(UsersController, :show)
|
225
248
|
|
@@ -276,13 +299,13 @@ describe UsersController do
|
|
276
299
|
:allow_nil => false,
|
277
300
|
:validator=>"Parameter has to be String.",
|
278
301
|
:description=>"\n<p>Username for login</p>\n",
|
279
|
-
:name=>"
|
302
|
+
:name=>"ausername", :full_name=>"resource_param[ausername]",
|
280
303
|
:expected_type=>"string"},
|
281
304
|
{:required=>true,
|
282
305
|
:allow_nil => false,
|
283
306
|
:validator=>"Parameter has to be String.",
|
284
307
|
:description=>"\n<p>Password for login</p>\n",
|
285
|
-
:name=>"
|
308
|
+
:name=>"apassword", :full_name=>"resource_param[apassword]",
|
286
309
|
:expected_type=>"string"}
|
287
310
|
]
|
288
311
|
},
|
@@ -311,6 +334,22 @@ describe UsersController do
|
|
311
334
|
|
312
335
|
end
|
313
336
|
|
337
|
+
describe "examples" do
|
338
|
+
|
339
|
+
it "should be able to load examples from yml file" do
|
340
|
+
Restapi.get_method_description(UsersController, :show).examples.should == [<<EOS1, <<EOS2].map(&:chomp)
|
341
|
+
GET /users/14?verbose=true
|
342
|
+
200
|
343
|
+
{
|
344
|
+
"name": "Test User"
|
345
|
+
}
|
346
|
+
EOS1
|
347
|
+
GET /users/15
|
348
|
+
404
|
349
|
+
EOS2
|
350
|
+
end
|
351
|
+
end
|
352
|
+
|
314
353
|
describe "param description" do
|
315
354
|
|
316
355
|
it "should contain all specified information" do
|
@@ -150,21 +150,16 @@ class TwitterExampleController < ApplicationController
|
|
150
150
|
render :text => 'search'
|
151
151
|
end
|
152
152
|
|
153
|
-
api :GET, '/twitter_example
|
154
|
-
param :
|
153
|
+
api :GET, '/twitter_example/:id', 'Returns extended information of a given user, specified by ID or screen name as per the required id parameter.'
|
154
|
+
param :id, :number, :required => true, :desc => <<-EOS
|
155
155
|
The ID of the user for whom to return results for. Either an id or screen_name is required for this method.
|
156
|
-
_Note_: Specifies the ID of the user to befriend. Helpful for disambiguating when a valid user ID is also a valid screen name.
|
157
156
|
EOS
|
158
|
-
param :screen_name, String, :desc => 'The screen name of the user for
|
157
|
+
param :screen_name, String, :desc => 'The screen name of the user for...'
|
159
158
|
description <<-EDOC
|
160
159
|
Returns extended information of a given user, specified by ID or screen name as per the required id parameter. The author's most recent status will be returned inline.
|
161
|
-
|
162
|
-
You must be following a protected user to be able to see their most recent status update. If you don't follow a protected user, or request this method without autenticating, the users status will be removed.
|
163
|
-
|
164
|
-
The URL pattern <tt>/version/twitter_example/show/:screen_name_or_user_id.format</tt> is still accepted but not recommended. As a sequence of numbers is a valid screen name we recommend using the +screen_name+ or +user_id+ parameter instead.
|
165
160
|
EDOC
|
166
161
|
def show
|
167
|
-
render :text =>
|
162
|
+
render :text => "show #{params}"
|
168
163
|
end
|
169
164
|
|
170
165
|
api :GET, '/twitter_example/contributors', 'Returns an array of users who can contribute to the specified account.'
|
@@ -7,8 +7,8 @@ class UsersController < ApplicationController
|
|
7
7
|
version '1.0 - 3.4.2012'
|
8
8
|
param :id, Fixnum, :desc => "User ID", :required => false
|
9
9
|
param :resource_param, Hash, :desc => 'Param description for all methods' do
|
10
|
-
param :
|
11
|
-
param :
|
10
|
+
param :ausername, String, :desc => "Username for login", :required => true
|
11
|
+
param :apassword, String, :desc => "Password for login", :required => true
|
12
12
|
end
|
13
13
|
description <<-EOS
|
14
14
|
== Long description
|
@@ -163,8 +163,8 @@ class UsersController < ApplicationController
|
|
163
163
|
More builder documentation can be found at http://builder.rubyforge.org.
|
164
164
|
eos
|
165
165
|
api :GET, "/users/:id", "Show user profile"
|
166
|
-
error
|
167
|
-
error :code => 404, :
|
166
|
+
error 401, "Unauthorized"
|
167
|
+
error :code => 404, :description => "Not Found"
|
168
168
|
param :id, Integer, :desc => "user id", :required => true
|
169
169
|
param :session, String, :desc => "user is logged in", :required => true
|
170
170
|
param :regexp_param, /^[0-9]* years/, :desc => "regexp param"
|
@@ -188,8 +188,8 @@ class UsersController < ApplicationController
|
|
188
188
|
|
189
189
|
api :POST, "/users", "Create user"
|
190
190
|
param :user, Hash, :desc => "User info", :required => true do
|
191
|
-
param :
|
192
|
-
param :
|
191
|
+
param :name, String, :desc => "Username for login", :required => true
|
192
|
+
param :pass, String, :desc => "Password for login", :required => true
|
193
193
|
param :membership, ["standard","premium"], :desc => "User membership"
|
194
194
|
end
|
195
195
|
param :facts, Hash, :desc => "Additional optional facts about the user", :allow_nil => true
|
@@ -213,4 +213,11 @@ class UsersController < ApplicationController
|
|
213
213
|
def two_urls
|
214
214
|
render :text => 'List of users'
|
215
215
|
end
|
216
|
+
|
217
|
+
api :GET, '/users/see_another', 'Boring method'
|
218
|
+
see 'users#create'
|
219
|
+
desc 'This method is boring, look at users#create'
|
220
|
+
def see_another
|
221
|
+
render :text => 'This is very similar to create action'
|
222
|
+
end
|
216
223
|
end
|
@@ -4,6 +4,13 @@ Restapi.configure do |config|
|
|
4
4
|
config.doc_base_url = "/apidoc"
|
5
5
|
config.api_base_url = "/api"
|
6
6
|
|
7
|
+
# set to true to turn on/off the cache. To generate the cache use:
|
8
|
+
#
|
9
|
+
# rake restapi:cache
|
10
|
+
#
|
11
|
+
# config.use_cache = Rails.env.production?
|
12
|
+
# config.cache_dir = File.join(Rails.root, "public", "restapi-cache") # optional
|
13
|
+
|
7
14
|
# set to enable/disable reloading controllers (and the documentation with it),
|
8
15
|
# by default enabled in development
|
9
16
|
# config.reload_controllers = false
|
@@ -0,0 +1,28 @@
|
|
1
|
+
---
|
2
|
+
users#show:
|
3
|
+
- verb: :GET
|
4
|
+
path: /users/15
|
5
|
+
query:
|
6
|
+
request_data:
|
7
|
+
response_data:
|
8
|
+
code: 404
|
9
|
+
show_in_doc: 2
|
10
|
+
recorded: true
|
11
|
+
- verb: :GET
|
12
|
+
path: /users/14
|
13
|
+
query: "verbose=true"
|
14
|
+
request_data:
|
15
|
+
response_data:
|
16
|
+
name: Test User
|
17
|
+
code: 200
|
18
|
+
show_in_doc: 1
|
19
|
+
recorded: true
|
20
|
+
- verb: :GET
|
21
|
+
path: /users/15
|
22
|
+
query: "verbose=true"
|
23
|
+
request_data:
|
24
|
+
response_data:
|
25
|
+
name: Test User
|
26
|
+
code: 200
|
27
|
+
show_in_doc: 0
|
28
|
+
recorded: true
|
metadata
CHANGED
@@ -1,74 +1,39 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: restapi
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 4
|
10
|
-
version: 0.0.4
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Pavel Pokorny
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-07-13 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rspec-rails
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :development
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: rcov
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
25
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
version: "0"
|
46
|
-
type: :development
|
47
|
-
version_requirements: *id002
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: weary
|
50
|
-
prerelease: false
|
51
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
-
none: false
|
53
|
-
requirements:
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
hash: 3
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
version: "0"
|
60
|
-
type: :development
|
61
|
-
version_requirements: *id003
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
62
30
|
description: Maintain your API documentation up to date!
|
63
|
-
email:
|
31
|
+
email:
|
64
32
|
- pajkycz@gmail.com
|
65
33
|
executables: []
|
66
|
-
|
67
34
|
extensions: []
|
68
|
-
|
69
35
|
extra_rdoc_files: []
|
70
|
-
|
71
|
-
files:
|
36
|
+
files:
|
72
37
|
- .autotest
|
73
38
|
- .gitignore
|
74
39
|
- .rspec
|
@@ -80,7 +45,6 @@ files:
|
|
80
45
|
- README.rdoc
|
81
46
|
- Rakefile
|
82
47
|
- app/controllers/restapi/restapis_controller.rb
|
83
|
-
- app/helpers/restapi/restapis_helper.rb
|
84
48
|
- app/public/restapi/javascripts/bundled/bootstrap-collapse.js
|
85
49
|
- app/public/restapi/javascripts/bundled/bootstrap.js
|
86
50
|
- app/public/restapi/javascripts/bundled/jquery-1.7.2.js
|
@@ -91,14 +55,30 @@ files:
|
|
91
55
|
- app/public/restapi/stylesheets/bundled/bootstrap.min.css
|
92
56
|
- app/public/restapi/stylesheets/bundled/prettify.css
|
93
57
|
- app/views/layouts/restapi/restapi.html.erb
|
58
|
+
- app/views/restapi/restapis/_params.html.erb
|
59
|
+
- app/views/restapi/restapis/_params_plain.html.erb
|
94
60
|
- app/views/restapi/restapis/index.html.erb
|
95
61
|
- app/views/restapi/restapis/method.html.erb
|
62
|
+
- app/views/restapi/restapis/plain.html.erb
|
96
63
|
- app/views/restapi/restapis/resource.html.erb
|
97
64
|
- app/views/restapi/restapis/static.html.erb
|
98
65
|
- lib/restapi.rb
|
99
66
|
- lib/restapi/application.rb
|
67
|
+
- lib/restapi/client/generator.rb
|
68
|
+
- lib/restapi/client/template/Gemfile.tt
|
69
|
+
- lib/restapi/client/template/README.tt
|
70
|
+
- lib/restapi/client/template/base.rb.tt
|
71
|
+
- lib/restapi/client/template/bin.rb.tt
|
72
|
+
- lib/restapi/client/template/cli.rb.tt
|
73
|
+
- lib/restapi/client/template/cli_command.rb.tt
|
74
|
+
- lib/restapi/client/template/client.rb.tt
|
75
|
+
- lib/restapi/client/template/resource.rb.tt
|
100
76
|
- lib/restapi/dsl_definition.rb
|
101
77
|
- lib/restapi/error_description.rb
|
78
|
+
- lib/restapi/extractor.rb
|
79
|
+
- lib/restapi/extractor/collector.rb
|
80
|
+
- lib/restapi/extractor/recorder.rb
|
81
|
+
- lib/restapi/extractor/writer.rb
|
102
82
|
- lib/restapi/helpers.rb
|
103
83
|
- lib/restapi/markup.rb
|
104
84
|
- lib/restapi/method_description.rb
|
@@ -135,6 +115,7 @@ files:
|
|
135
115
|
- spec/dummy/config/initializers/session_store.rb
|
136
116
|
- spec/dummy/config/locales/en.yml
|
137
117
|
- spec/dummy/config/routes.rb
|
118
|
+
- spec/dummy/doc/restapi_examples.yml
|
138
119
|
- spec/dummy/public/404.html
|
139
120
|
- spec/dummy/public/422.html
|
140
121
|
- spec/dummy/public/500.html
|
@@ -150,38 +131,29 @@ files:
|
|
150
131
|
- spec/spec_helper.rb
|
151
132
|
homepage: http://github.com/Pajk/rails-restapi
|
152
133
|
licenses: []
|
153
|
-
|
154
134
|
post_install_message:
|
155
135
|
rdoc_options: []
|
156
|
-
|
157
|
-
require_paths:
|
136
|
+
require_paths:
|
158
137
|
- lib
|
159
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
138
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
160
139
|
none: false
|
161
|
-
requirements:
|
162
|
-
- -
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
|
165
|
-
|
166
|
-
- 0
|
167
|
-
version: "0"
|
168
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
|
+
requirements:
|
141
|
+
- - ! '>='
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '0'
|
144
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
145
|
none: false
|
170
|
-
requirements:
|
171
|
-
- -
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
|
174
|
-
segments:
|
175
|
-
- 0
|
176
|
-
version: "0"
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
177
150
|
requirements: []
|
178
|
-
|
179
151
|
rubyforge_project:
|
180
152
|
rubygems_version: 1.8.23
|
181
153
|
signing_key:
|
182
154
|
specification_version: 3
|
183
155
|
summary: REST API documentation tool
|
184
|
-
test_files:
|
156
|
+
test_files:
|
185
157
|
- spec/controllers/restapis_controller_spec.rb
|
186
158
|
- spec/controllers/users_controller_spec.rb
|
187
159
|
- spec/dummy/Rakefile
|
@@ -205,6 +177,7 @@ test_files:
|
|
205
177
|
- spec/dummy/config/initializers/session_store.rb
|
206
178
|
- spec/dummy/config/locales/en.yml
|
207
179
|
- spec/dummy/config/routes.rb
|
180
|
+
- spec/dummy/doc/restapi_examples.yml
|
208
181
|
- spec/dummy/public/404.html
|
209
182
|
- spec/dummy/public/422.html
|
210
183
|
- spec/dummy/public/500.html
|