apipie-rails 0.2.6 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +33 -1
- data/README.rst +210 -137
- data/app/views/apipie/apipies/_disqus.html.erb +1 -1
- data/app/views/apipie/apipies/_params.html.erb +1 -1
- data/app/views/apipie/apipies/_params_plain.html.erb +1 -1
- data/lib/apipie/application.rb +44 -1
- data/lib/apipie/configuration.rb +22 -3
- data/lib/apipie/dsl_definition.rb +90 -47
- data/lib/apipie/errors.rb +6 -0
- data/lib/apipie/extractor.rb +1 -1
- data/lib/apipie/extractor/recorder.rb +35 -0
- data/lib/apipie/extractor/writer.rb +31 -9
- data/lib/apipie/method_description.rb +9 -3
- data/lib/apipie/routes_formatter.rb +33 -0
- data/lib/apipie/validator.rb +8 -0
- data/lib/apipie/version.rb +1 -1
- data/lib/tasks/apipie.rake +5 -3
- data/spec/controllers/users_controller_spec.rb +261 -193
- data/spec/dummy/app/controllers/application_controller.rb +8 -0
- data/spec/dummy/app/controllers/files_controller.rb +5 -0
- data/spec/dummy/app/controllers/users_controller.rb +10 -0
- data/spec/dummy/config/initializers/apipie.rb +1 -2
- data/spec/dummy/config/routes.rb +8 -1
- data/spec/lib/extractor/extractor_spec.rb +9 -0
- data/spec/lib/extractor/middleware_spec.rb +23 -0
- metadata +7 -2
@@ -1,6 +1,14 @@
|
|
1
1
|
class ApplicationController < ActionController::Base
|
2
|
+
before_filter :run_validations
|
2
3
|
|
3
4
|
resource_description do
|
4
5
|
param :oauth, String, :desc => "Authorization", :required => false
|
5
6
|
end
|
7
|
+
|
8
|
+
def run_validations
|
9
|
+
if Apipie.configuration.validate == :explicitly
|
10
|
+
apipie_validations
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
6
14
|
end
|
@@ -268,4 +268,14 @@ class UsersController < ApplicationController
|
|
268
268
|
def desc_from_file
|
269
269
|
render :text => 'document from file action'
|
270
270
|
end
|
271
|
+
|
272
|
+
api! 'Create user'
|
273
|
+
param_group :user
|
274
|
+
param :user, Hash do
|
275
|
+
param :permalink, String
|
276
|
+
end
|
277
|
+
param :facts, Hash, :desc => "Additional optional facts about the user", :allow_nil => true
|
278
|
+
def create_route
|
279
|
+
end
|
280
|
+
|
271
281
|
end
|
@@ -41,7 +41,7 @@ Apipie.configure do |config|
|
|
41
41
|
# to disable markup, use
|
42
42
|
# config.markup = nil
|
43
43
|
|
44
|
-
|
44
|
+
config.validate = false
|
45
45
|
|
46
46
|
# set all parameters as required by default
|
47
47
|
# if enabled, use param :name, val, :required => false for optional params
|
@@ -73,7 +73,6 @@ Apipie.configure do |config|
|
|
73
73
|
# config.link_extension = ""
|
74
74
|
end
|
75
75
|
|
76
|
-
|
77
76
|
# integer validator
|
78
77
|
class Apipie::Validator::IntegerValidator < Apipie::Validator::BaseValidator
|
79
78
|
|
data/spec/dummy/config/routes.rb
CHANGED
@@ -3,8 +3,15 @@ Dummy::Application.routes.draw do
|
|
3
3
|
scope ENV['RAILS_RELATIVE_URL_ROOT'] || '/' do
|
4
4
|
|
5
5
|
scope '/api' do
|
6
|
-
resources :users
|
6
|
+
resources :users do
|
7
|
+
collection do
|
8
|
+
post :create_route
|
9
|
+
end
|
10
|
+
end
|
7
11
|
resources :concerns, :only => [:index, :show]
|
12
|
+
namespace :files do
|
13
|
+
get '/*file_path', to: :download, format: false
|
14
|
+
end
|
8
15
|
resources :twitter_example do
|
9
16
|
collection do
|
10
17
|
get :lookup
|
@@ -18,4 +18,27 @@ describe Apipie::Extractor::Recorder::Middleware do
|
|
18
18
|
expect(Apipie::Extractor).to receive(:clean_call_recorder)
|
19
19
|
response
|
20
20
|
end
|
21
|
+
|
22
|
+
describe 'with a multipart post' do
|
23
|
+
let(:form_hash) do
|
24
|
+
{
|
25
|
+
'stringbody' => 'this is a string body',
|
26
|
+
'filebody' => {:head => 'X-Fake-Header: fake1\r\n'},
|
27
|
+
'files' => {
|
28
|
+
'0' => {:head => 'X-Fake-Header: fake2\r\n'}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
let(:response) do
|
34
|
+
request.post('/', 'rack.request.form_hash' => form_hash)
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'reformats form parts' do
|
38
|
+
Apipie.configuration.record = true
|
39
|
+
# expect reformat_multipart_data to invoke content_disposition
|
40
|
+
expect(Apipie::Extractor.call_recorder).to receive(:content_disposition)
|
41
|
+
response
|
42
|
+
end
|
43
|
+
end
|
21
44
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apipie-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-01-07 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -224,6 +224,7 @@ files:
|
|
224
224
|
- lib/apipie/param_description.rb
|
225
225
|
- lib/apipie/railtie.rb
|
226
226
|
- lib/apipie/resource_description.rb
|
227
|
+
- lib/apipie/routes_formatter.rb
|
227
228
|
- lib/apipie/routing.rb
|
228
229
|
- lib/apipie/see_description.rb
|
229
230
|
- lib/apipie/static_dispatcher.rb
|
@@ -254,6 +255,7 @@ files:
|
|
254
255
|
- spec/dummy/app/controllers/application_controller.rb
|
255
256
|
- spec/dummy/app/controllers/concerns/sample_controller.rb
|
256
257
|
- spec/dummy/app/controllers/concerns_controller.rb
|
258
|
+
- spec/dummy/app/controllers/files_controller.rb
|
257
259
|
- spec/dummy/app/controllers/overridden_concerns_controller.rb
|
258
260
|
- spec/dummy/app/controllers/twitter_example_controller.rb
|
259
261
|
- spec/dummy/app/controllers/users_controller.rb
|
@@ -290,6 +292,7 @@ files:
|
|
290
292
|
- spec/dummy/public/stylesheets/.gitkeep
|
291
293
|
- spec/dummy/script/rails
|
292
294
|
- spec/lib/application_spec.rb
|
295
|
+
- spec/lib/extractor/extractor_spec.rb
|
293
296
|
- spec/lib/extractor/middleware_spec.rb
|
294
297
|
- spec/lib/extractor/writer_spec.rb
|
295
298
|
- spec/lib/method_description_spec.rb
|
@@ -343,6 +346,7 @@ test_files:
|
|
343
346
|
- spec/dummy/app/controllers/application_controller.rb
|
344
347
|
- spec/dummy/app/controllers/concerns/sample_controller.rb
|
345
348
|
- spec/dummy/app/controllers/concerns_controller.rb
|
349
|
+
- spec/dummy/app/controllers/files_controller.rb
|
346
350
|
- spec/dummy/app/controllers/overridden_concerns_controller.rb
|
347
351
|
- spec/dummy/app/controllers/twitter_example_controller.rb
|
348
352
|
- spec/dummy/app/controllers/users_controller.rb
|
@@ -379,6 +383,7 @@ test_files:
|
|
379
383
|
- spec/dummy/public/stylesheets/.gitkeep
|
380
384
|
- spec/dummy/script/rails
|
381
385
|
- spec/lib/application_spec.rb
|
386
|
+
- spec/lib/extractor/extractor_spec.rb
|
382
387
|
- spec/lib/extractor/middleware_spec.rb
|
383
388
|
- spec/lib/extractor/writer_spec.rb
|
384
389
|
- spec/lib/method_description_spec.rb
|