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.

Files changed (84) hide show
  1. checksums.yaml +8 -8
  2. data/.rubocop.yml +65 -0
  3. data/.travis.yml +4 -0
  4. data/CHANGELOG.md +17 -1
  5. data/Gemfile +1 -0
  6. data/README.md +16 -8
  7. data/RELEASING.md +105 -0
  8. data/grape.gemspec +1 -1
  9. data/lib/grape.rb +1 -0
  10. data/lib/grape/api.rb +88 -54
  11. data/lib/grape/cookies.rb +4 -6
  12. data/lib/grape/endpoint.rb +81 -69
  13. data/lib/grape/error_formatter/base.rb +5 -4
  14. data/lib/grape/error_formatter/json.rb +3 -3
  15. data/lib/grape/error_formatter/txt.rb +1 -1
  16. data/lib/grape/error_formatter/xml.rb +4 -4
  17. data/lib/grape/exceptions/base.rb +7 -7
  18. data/lib/grape/exceptions/incompatible_option_values.rb +13 -0
  19. data/lib/grape/exceptions/invalid_formatter.rb +1 -1
  20. data/lib/grape/exceptions/invalid_versioner_option.rb +1 -1
  21. data/lib/grape/exceptions/invalid_with_option_for_represent.rb +1 -4
  22. data/lib/grape/exceptions/missing_mime_type.rb +1 -1
  23. data/lib/grape/exceptions/missing_option.rb +1 -1
  24. data/lib/grape/exceptions/missing_vendor_option.rb +1 -1
  25. data/lib/grape/exceptions/unknown_options.rb +1 -1
  26. data/lib/grape/exceptions/unknown_validator.rb +1 -1
  27. data/lib/grape/exceptions/validation.rb +2 -2
  28. data/lib/grape/exceptions/validation_errors.rb +1 -1
  29. data/lib/grape/formatter/base.rb +5 -4
  30. data/lib/grape/formatter/serializable_hash.rb +7 -6
  31. data/lib/grape/http/request.rb +2 -2
  32. data/lib/grape/locale/en.yml +2 -0
  33. data/lib/grape/middleware/auth/base.rb +3 -3
  34. data/lib/grape/middleware/auth/basic.rb +1 -1
  35. data/lib/grape/middleware/auth/oauth2.rb +18 -20
  36. data/lib/grape/middleware/base.rb +1 -1
  37. data/lib/grape/middleware/error.rb +19 -19
  38. data/lib/grape/middleware/filter.rb +3 -3
  39. data/lib/grape/middleware/formatter.rb +29 -23
  40. data/lib/grape/middleware/versioner.rb +1 -1
  41. data/lib/grape/middleware/versioner/accept_version_header.rb +8 -6
  42. data/lib/grape/middleware/versioner/header.rb +16 -14
  43. data/lib/grape/middleware/versioner/param.rb +7 -7
  44. data/lib/grape/middleware/versioner/path.rb +7 -9
  45. data/lib/grape/parser/base.rb +3 -2
  46. data/lib/grape/path.rb +1 -1
  47. data/lib/grape/route.rb +6 -4
  48. data/lib/grape/util/content_types.rb +2 -1
  49. data/lib/grape/util/deep_merge.rb +5 -5
  50. data/lib/grape/util/hash_stack.rb +2 -2
  51. data/lib/grape/validations.rb +34 -30
  52. data/lib/grape/validations/coerce.rb +6 -5
  53. data/lib/grape/validations/default.rb +0 -1
  54. data/lib/grape/validations/presence.rb +1 -1
  55. data/lib/grape/validations/regexp.rb +2 -2
  56. data/lib/grape/validations/values.rb +16 -0
  57. data/lib/grape/version.rb +1 -1
  58. data/spec/grape/api_spec.rb +229 -210
  59. data/spec/grape/endpoint_spec.rb +56 -54
  60. data/spec/grape/entity_spec.rb +31 -33
  61. data/spec/grape/exceptions/missing_mime_type_spec.rb +3 -9
  62. data/spec/grape/middleware/auth/basic_spec.rb +8 -8
  63. data/spec/grape/middleware/auth/digest_spec.rb +5 -5
  64. data/spec/grape/middleware/auth/oauth2_spec.rb +23 -23
  65. data/spec/grape/middleware/base_spec.rb +6 -6
  66. data/spec/grape/middleware/error_spec.rb +11 -15
  67. data/spec/grape/middleware/exception_spec.rb +45 -25
  68. data/spec/grape/middleware/formatter_spec.rb +56 -45
  69. data/spec/grape/middleware/versioner/accept_version_header_spec.rb +25 -25
  70. data/spec/grape/middleware/versioner/header_spec.rb +54 -54
  71. data/spec/grape/middleware/versioner/param_spec.rb +17 -18
  72. data/spec/grape/middleware/versioner/path_spec.rb +6 -6
  73. data/spec/grape/middleware/versioner_spec.rb +1 -1
  74. data/spec/grape/util/hash_stack_spec.rb +26 -27
  75. data/spec/grape/validations/coerce_spec.rb +39 -34
  76. data/spec/grape/validations/default_spec.rb +12 -13
  77. data/spec/grape/validations/presence_spec.rb +18 -22
  78. data/spec/grape/validations/regexp_spec.rb +9 -9
  79. data/spec/grape/validations/values_spec.rb +64 -0
  80. data/spec/grape/validations_spec.rb +127 -70
  81. data/spec/shared/versioning_examples.rb +5 -5
  82. data/spec/support/basic_auth_encode_helpers.rb +0 -1
  83. data/spec/support/versioned_helpers.rb +5 -6
  84. 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(:prefix => 'api')
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(:prefix => subject.prefix)
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(:prefix => subject.prefix)
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
@@ -1,4 +1,3 @@
1
1
  def encode_basic_auth(username, password)
2
2
  "Basic " + Base64.encode64("#{username}:#{password}")
3
3
  end
4
-
@@ -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
- ].compact.join("+")
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(:version => version_name, :path => path))
44
- headers = versioned_headers(version_options.merge(:version => version_name))
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.0
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-09-16 00:00:00.000000000 Z
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: '0'
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: '0'
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