grape 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grape might be problematic. Click here for more details.
- checksums.yaml +8 -8
- data/.rubocop.yml +65 -0
- data/.travis.yml +4 -0
- data/CHANGELOG.md +17 -1
- data/Gemfile +1 -0
- data/README.md +16 -8
- data/RELEASING.md +105 -0
- data/grape.gemspec +1 -1
- data/lib/grape.rb +1 -0
- data/lib/grape/api.rb +88 -54
- data/lib/grape/cookies.rb +4 -6
- data/lib/grape/endpoint.rb +81 -69
- data/lib/grape/error_formatter/base.rb +5 -4
- data/lib/grape/error_formatter/json.rb +3 -3
- data/lib/grape/error_formatter/txt.rb +1 -1
- data/lib/grape/error_formatter/xml.rb +4 -4
- data/lib/grape/exceptions/base.rb +7 -7
- data/lib/grape/exceptions/incompatible_option_values.rb +13 -0
- data/lib/grape/exceptions/invalid_formatter.rb +1 -1
- data/lib/grape/exceptions/invalid_versioner_option.rb +1 -1
- data/lib/grape/exceptions/invalid_with_option_for_represent.rb +1 -4
- data/lib/grape/exceptions/missing_mime_type.rb +1 -1
- data/lib/grape/exceptions/missing_option.rb +1 -1
- data/lib/grape/exceptions/missing_vendor_option.rb +1 -1
- data/lib/grape/exceptions/unknown_options.rb +1 -1
- data/lib/grape/exceptions/unknown_validator.rb +1 -1
- data/lib/grape/exceptions/validation.rb +2 -2
- data/lib/grape/exceptions/validation_errors.rb +1 -1
- data/lib/grape/formatter/base.rb +5 -4
- data/lib/grape/formatter/serializable_hash.rb +7 -6
- data/lib/grape/http/request.rb +2 -2
- data/lib/grape/locale/en.yml +2 -0
- data/lib/grape/middleware/auth/base.rb +3 -3
- data/lib/grape/middleware/auth/basic.rb +1 -1
- data/lib/grape/middleware/auth/oauth2.rb +18 -20
- data/lib/grape/middleware/base.rb +1 -1
- data/lib/grape/middleware/error.rb +19 -19
- data/lib/grape/middleware/filter.rb +3 -3
- data/lib/grape/middleware/formatter.rb +29 -23
- data/lib/grape/middleware/versioner.rb +1 -1
- data/lib/grape/middleware/versioner/accept_version_header.rb +8 -6
- data/lib/grape/middleware/versioner/header.rb +16 -14
- data/lib/grape/middleware/versioner/param.rb +7 -7
- data/lib/grape/middleware/versioner/path.rb +7 -9
- data/lib/grape/parser/base.rb +3 -2
- data/lib/grape/path.rb +1 -1
- data/lib/grape/route.rb +6 -4
- data/lib/grape/util/content_types.rb +2 -1
- data/lib/grape/util/deep_merge.rb +5 -5
- data/lib/grape/util/hash_stack.rb +2 -2
- data/lib/grape/validations.rb +34 -30
- data/lib/grape/validations/coerce.rb +6 -5
- data/lib/grape/validations/default.rb +0 -1
- data/lib/grape/validations/presence.rb +1 -1
- data/lib/grape/validations/regexp.rb +2 -2
- data/lib/grape/validations/values.rb +16 -0
- data/lib/grape/version.rb +1 -1
- data/spec/grape/api_spec.rb +229 -210
- data/spec/grape/endpoint_spec.rb +56 -54
- data/spec/grape/entity_spec.rb +31 -33
- data/spec/grape/exceptions/missing_mime_type_spec.rb +3 -9
- data/spec/grape/middleware/auth/basic_spec.rb +8 -8
- data/spec/grape/middleware/auth/digest_spec.rb +5 -5
- data/spec/grape/middleware/auth/oauth2_spec.rb +23 -23
- data/spec/grape/middleware/base_spec.rb +6 -6
- data/spec/grape/middleware/error_spec.rb +11 -15
- data/spec/grape/middleware/exception_spec.rb +45 -25
- data/spec/grape/middleware/formatter_spec.rb +56 -45
- data/spec/grape/middleware/versioner/accept_version_header_spec.rb +25 -25
- data/spec/grape/middleware/versioner/header_spec.rb +54 -54
- data/spec/grape/middleware/versioner/param_spec.rb +17 -18
- data/spec/grape/middleware/versioner/path_spec.rb +6 -6
- data/spec/grape/middleware/versioner_spec.rb +1 -1
- data/spec/grape/util/hash_stack_spec.rb +26 -27
- data/spec/grape/validations/coerce_spec.rb +39 -34
- data/spec/grape/validations/default_spec.rb +12 -13
- data/spec/grape/validations/presence_spec.rb +18 -22
- data/spec/grape/validations/regexp_spec.rb +9 -9
- data/spec/grape/validations/values_spec.rb +64 -0
- data/spec/grape/validations_spec.rb +127 -70
- data/spec/shared/versioning_examples.rb +5 -5
- data/spec/support/basic_auth_encode_helpers.rb +0 -1
- data/spec/support/versioned_helpers.rb +5 -6
- metadata +10 -4
@@ -3,7 +3,7 @@ shared_examples_for 'versioning' do
|
|
3
3
|
subject.format :txt
|
4
4
|
subject.version 'v1', macro_options
|
5
5
|
subject.get :hello do
|
6
|
-
"Version: #{request.env['api.version']}"
|
6
|
+
"Version: #{request.env['api.version'] }"
|
7
7
|
end
|
8
8
|
versioned_get '/hello', 'v1', macro_options
|
9
9
|
last_response.body.should eql "Version: v1"
|
@@ -14,9 +14,9 @@ shared_examples_for 'versioning' do
|
|
14
14
|
subject.prefix 'api'
|
15
15
|
subject.version 'v1', macro_options
|
16
16
|
subject.get :hello do
|
17
|
-
"Version: #{request.env['api.version']}"
|
17
|
+
"Version: #{request.env['api.version'] }"
|
18
18
|
end
|
19
|
-
versioned_get '/hello', 'v1', macro_options.merge(:
|
19
|
+
versioned_get '/hello', 'v1', macro_options.merge(prefix: 'api')
|
20
20
|
last_response.body.should eql "Version: v1"
|
21
21
|
end
|
22
22
|
|
@@ -96,11 +96,11 @@ shared_examples_for 'versioning' do
|
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
99
|
-
versioned_get '/version', 'v1', macro_options.merge(:
|
99
|
+
versioned_get '/version', 'v1', macro_options.merge(prefix: subject.prefix)
|
100
100
|
last_response.status.should == 200
|
101
101
|
last_response.body.should == 'version v1'
|
102
102
|
|
103
|
-
versioned_get '/version', 'v2', macro_options.merge(:
|
103
|
+
versioned_get '/version', 'v2', macro_options.merge(prefix: subject.prefix)
|
104
104
|
last_response.status.should == 200
|
105
105
|
last_response.body.should == 'v2'
|
106
106
|
end
|
@@ -26,13 +26,13 @@ def versioned_headers(options)
|
|
26
26
|
when :header
|
27
27
|
{
|
28
28
|
'HTTP_ACCEPT' => [
|
29
|
-
"application/vnd.#{options[:vendor]}-#{options[:version]}",
|
29
|
+
"application/vnd.#{options[:vendor] }-#{options[:version] }",
|
30
30
|
options[:format]
|
31
|
-
|
31
|
+
].compact.join("+")
|
32
32
|
}
|
33
33
|
when :accept_version_header
|
34
34
|
{
|
35
|
-
'HTTP_ACCEPT_VERSION' => "#{options[:version]}"
|
35
|
+
'HTTP_ACCEPT_VERSION' => "#{options[:version] }"
|
36
36
|
}
|
37
37
|
else
|
38
38
|
raise ArgumentError.new("unknown versioning strategy: #{options[:using]}")
|
@@ -40,12 +40,11 @@ def versioned_headers(options)
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def versioned_get(path, version_name, version_options = {})
|
43
|
-
path = versioned_path(version_options.merge(:
|
44
|
-
headers = versioned_headers(version_options.merge(:
|
43
|
+
path = versioned_path(version_options.merge(version: version_name, path: path))
|
44
|
+
headers = versioned_headers(version_options.merge(version: version_name))
|
45
45
|
params = {}
|
46
46
|
if version_options[:using] == :param
|
47
47
|
params = { version_options[:parameter] => version_name }
|
48
48
|
end
|
49
49
|
get path, params, headers
|
50
50
|
end
|
51
|
-
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grape
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Bleigh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - ! '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: 1.0.0
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - ! '>='
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: 1.0.0
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: builder
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -243,6 +243,7 @@ extra_rdoc_files: []
|
|
243
243
|
files:
|
244
244
|
- .gitignore
|
245
245
|
- .rspec
|
246
|
+
- .rubocop.yml
|
246
247
|
- .travis.yml
|
247
248
|
- .yardopts
|
248
249
|
- CHANGELOG.md
|
@@ -250,6 +251,7 @@ files:
|
|
250
251
|
- Guardfile
|
251
252
|
- LICENSE
|
252
253
|
- README.md
|
254
|
+
- RELEASING.md
|
253
255
|
- Rakefile
|
254
256
|
- grape.gemspec
|
255
257
|
- lib/grape.rb
|
@@ -261,6 +263,7 @@ files:
|
|
261
263
|
- lib/grape/error_formatter/txt.rb
|
262
264
|
- lib/grape/error_formatter/xml.rb
|
263
265
|
- lib/grape/exceptions/base.rb
|
266
|
+
- lib/grape/exceptions/incompatible_option_values.rb
|
264
267
|
- lib/grape/exceptions/invalid_formatter.rb
|
265
268
|
- lib/grape/exceptions/invalid_versioner_option.rb
|
266
269
|
- lib/grape/exceptions/invalid_with_option_for_represent.rb
|
@@ -305,6 +308,7 @@ files:
|
|
305
308
|
- lib/grape/validations/default.rb
|
306
309
|
- lib/grape/validations/presence.rb
|
307
310
|
- lib/grape/validations/regexp.rb
|
311
|
+
- lib/grape/validations/values.rb
|
308
312
|
- lib/grape/version.rb
|
309
313
|
- spec/grape/api_spec.rb
|
310
314
|
- spec/grape/endpoint_spec.rb
|
@@ -333,6 +337,7 @@ files:
|
|
333
337
|
- spec/grape/validations/default_spec.rb
|
334
338
|
- spec/grape/validations/presence_spec.rb
|
335
339
|
- spec/grape/validations/regexp_spec.rb
|
340
|
+
- spec/grape/validations/values_spec.rb
|
336
341
|
- spec/grape/validations/zh-CN.yml
|
337
342
|
- spec/grape/validations_spec.rb
|
338
343
|
- spec/shared/versioning_examples.rb
|
@@ -391,6 +396,7 @@ test_files:
|
|
391
396
|
- spec/grape/validations/default_spec.rb
|
392
397
|
- spec/grape/validations/presence_spec.rb
|
393
398
|
- spec/grape/validations/regexp_spec.rb
|
399
|
+
- spec/grape/validations/values_spec.rb
|
394
400
|
- spec/grape/validations/zh-CN.yml
|
395
401
|
- spec/grape/validations_spec.rb
|
396
402
|
- spec/shared/versioning_examples.rb
|