grape 1.3.3 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +111 -2
  3. data/CONTRIBUTING.md +2 -1
  4. data/README.md +135 -23
  5. data/UPGRADING.md +237 -46
  6. data/grape.gemspec +5 -5
  7. data/lib/grape/api/instance.rb +34 -42
  8. data/lib/grape/api.rb +21 -16
  9. data/lib/grape/cookies.rb +2 -0
  10. data/lib/grape/dsl/callbacks.rb +1 -1
  11. data/lib/grape/dsl/desc.rb +3 -5
  12. data/lib/grape/dsl/headers.rb +5 -2
  13. data/lib/grape/dsl/helpers.rb +8 -5
  14. data/lib/grape/dsl/inside_route.rb +72 -53
  15. data/lib/grape/dsl/middleware.rb +4 -4
  16. data/lib/grape/dsl/parameters.rb +11 -7
  17. data/lib/grape/dsl/request_response.rb +9 -6
  18. data/lib/grape/dsl/routing.rb +8 -9
  19. data/lib/grape/dsl/settings.rb +5 -5
  20. data/lib/grape/dsl/validations.rb +18 -1
  21. data/lib/grape/eager_load.rb +1 -1
  22. data/lib/grape/endpoint.rb +29 -42
  23. data/lib/grape/error_formatter/json.rb +2 -6
  24. data/lib/grape/error_formatter/xml.rb +2 -6
  25. data/lib/grape/exceptions/empty_message_body.rb +11 -0
  26. data/lib/grape/exceptions/validation.rb +2 -3
  27. data/lib/grape/exceptions/validation_errors.rb +1 -1
  28. data/lib/grape/formatter/json.rb +1 -0
  29. data/lib/grape/formatter/serializable_hash.rb +2 -1
  30. data/lib/grape/formatter/xml.rb +1 -0
  31. data/lib/grape/locale/en.yml +1 -1
  32. data/lib/grape/middleware/auth/base.rb +3 -3
  33. data/lib/grape/middleware/auth/dsl.rb +7 -1
  34. data/lib/grape/middleware/base.rb +6 -3
  35. data/lib/grape/middleware/error.rb +11 -13
  36. data/lib/grape/middleware/formatter.rb +7 -7
  37. data/lib/grape/middleware/stack.rb +10 -3
  38. data/lib/grape/middleware/versioner/accept_version_header.rb +3 -5
  39. data/lib/grape/middleware/versioner/header.rb +6 -4
  40. data/lib/grape/middleware/versioner/param.rb +1 -0
  41. data/lib/grape/middleware/versioner/parse_media_type_patch.rb +2 -1
  42. data/lib/grape/middleware/versioner/path.rb +2 -0
  43. data/lib/grape/parser/json.rb +1 -1
  44. data/lib/grape/parser/xml.rb +1 -1
  45. data/lib/grape/path.rb +1 -0
  46. data/lib/grape/request.rb +4 -1
  47. data/lib/grape/router/attribute_translator.rb +3 -3
  48. data/lib/grape/router/pattern.rb +1 -1
  49. data/lib/grape/router/route.rb +2 -2
  50. data/lib/grape/router.rb +31 -30
  51. data/lib/grape/{serve_file → serve_stream}/file_body.rb +1 -1
  52. data/lib/grape/{serve_file → serve_stream}/sendfile_response.rb +1 -1
  53. data/lib/grape/{serve_file/file_response.rb → serve_stream/stream_response.rb} +8 -8
  54. data/lib/grape/util/base_inheritable.rb +2 -2
  55. data/lib/grape/util/inheritable_setting.rb +1 -3
  56. data/lib/grape/util/lazy_value.rb +4 -2
  57. data/lib/grape/util/strict_hash_configuration.rb +1 -1
  58. data/lib/grape/validations/attributes_iterator.rb +8 -0
  59. data/lib/grape/validations/multiple_attributes_iterator.rb +1 -1
  60. data/lib/grape/validations/params_scope.rb +97 -62
  61. data/lib/grape/validations/single_attribute_iterator.rb +1 -1
  62. data/lib/grape/validations/types/custom_type_coercer.rb +16 -3
  63. data/lib/grape/validations/types/dry_type_coercer.rb +1 -1
  64. data/lib/grape/validations/types/invalid_value.rb +24 -0
  65. data/lib/grape/validations/types/json.rb +2 -1
  66. data/lib/grape/validations/types/primitive_coercer.rb +4 -5
  67. data/lib/grape/validations/types.rb +1 -4
  68. data/lib/grape/validations/validator_factory.rb +1 -1
  69. data/lib/grape/validations/validators/all_or_none.rb +8 -5
  70. data/lib/grape/validations/validators/allow_blank.rb +9 -7
  71. data/lib/grape/validations/validators/as.rb +6 -8
  72. data/lib/grape/validations/validators/at_least_one_of.rb +7 -4
  73. data/lib/grape/validations/validators/base.rb +74 -69
  74. data/lib/grape/validations/validators/coerce.rb +63 -76
  75. data/lib/grape/validations/validators/default.rb +36 -34
  76. data/lib/grape/validations/validators/exactly_one_of.rb +9 -6
  77. data/lib/grape/validations/validators/except_values.rb +13 -11
  78. data/lib/grape/validations/validators/multiple_params_base.rb +24 -19
  79. data/lib/grape/validations/validators/mutual_exclusion.rb +8 -5
  80. data/lib/grape/validations/validators/presence.rb +7 -4
  81. data/lib/grape/validations/validators/regexp.rb +8 -5
  82. data/lib/grape/validations/validators/same_as.rb +18 -15
  83. data/lib/grape/validations/validators/values.rb +61 -56
  84. data/lib/grape/validations.rb +6 -0
  85. data/lib/grape/version.rb +1 -1
  86. data/lib/grape.rb +7 -3
  87. data/spec/grape/api/custom_validations_spec.rb +77 -45
  88. data/spec/grape/api/deeply_included_options_spec.rb +3 -3
  89. data/spec/grape/api/defines_boolean_in_params_spec.rb +2 -1
  90. data/spec/grape/api/invalid_format_spec.rb +2 -0
  91. data/spec/grape/api/recognize_path_spec.rb +1 -1
  92. data/spec/grape/api/routes_with_requirements_spec.rb +8 -8
  93. data/spec/grape/api/shared_helpers_exactly_one_of_spec.rb +9 -15
  94. data/spec/grape/api_remount_spec.rb +25 -19
  95. data/spec/grape/api_spec.rb +576 -211
  96. data/spec/grape/dsl/callbacks_spec.rb +2 -1
  97. data/spec/grape/dsl/headers_spec.rb +39 -9
  98. data/spec/grape/dsl/helpers_spec.rb +3 -2
  99. data/spec/grape/dsl/inside_route_spec.rb +185 -34
  100. data/spec/grape/dsl/logger_spec.rb +16 -18
  101. data/spec/grape/dsl/middleware_spec.rb +2 -1
  102. data/spec/grape/dsl/parameters_spec.rb +2 -0
  103. data/spec/grape/dsl/request_response_spec.rb +1 -0
  104. data/spec/grape/dsl/routing_spec.rb +10 -7
  105. data/spec/grape/endpoint/declared_spec.rb +848 -0
  106. data/spec/grape/endpoint_spec.rb +77 -589
  107. data/spec/grape/entity_spec.rb +29 -23
  108. data/spec/grape/exceptions/body_parse_errors_spec.rb +3 -0
  109. data/spec/grape/exceptions/invalid_accept_header_spec.rb +61 -22
  110. data/spec/grape/exceptions/validation_errors_spec.rb +13 -10
  111. data/spec/grape/exceptions/validation_spec.rb +5 -3
  112. data/spec/grape/extensions/param_builders/hash_spec.rb +7 -7
  113. data/spec/grape/extensions/param_builders/hash_with_indifferent_access_spec.rb +8 -8
  114. data/spec/grape/extensions/param_builders/hashie/mash_spec.rb +8 -8
  115. data/spec/grape/integration/rack_sendfile_spec.rb +13 -9
  116. data/spec/grape/loading_spec.rb +8 -8
  117. data/spec/grape/middleware/auth/dsl_spec.rb +15 -6
  118. data/spec/grape/middleware/auth/strategies_spec.rb +61 -21
  119. data/spec/grape/middleware/base_spec.rb +24 -15
  120. data/spec/grape/middleware/error_spec.rb +3 -3
  121. data/spec/grape/middleware/exception_spec.rb +111 -161
  122. data/spec/grape/middleware/formatter_spec.rb +28 -7
  123. data/spec/grape/middleware/globals_spec.rb +7 -4
  124. data/spec/grape/middleware/stack_spec.rb +15 -12
  125. data/spec/grape/middleware/versioner/accept_version_header_spec.rb +2 -1
  126. data/spec/grape/middleware/versioner/header_spec.rb +14 -13
  127. data/spec/grape/middleware/versioner/param_spec.rb +7 -1
  128. data/spec/grape/middleware/versioner/path_spec.rb +5 -1
  129. data/spec/grape/middleware/versioner_spec.rb +1 -1
  130. data/spec/grape/parser_spec.rb +4 -0
  131. data/spec/grape/path_spec.rb +52 -52
  132. data/spec/grape/presenters/presenter_spec.rb +7 -6
  133. data/spec/grape/request_spec.rb +6 -4
  134. data/spec/grape/util/inheritable_setting_spec.rb +7 -7
  135. data/spec/grape/util/inheritable_values_spec.rb +3 -2
  136. data/spec/grape/util/reverse_stackable_values_spec.rb +3 -1
  137. data/spec/grape/util/stackable_values_spec.rb +7 -5
  138. data/spec/grape/validations/instance_behaivour_spec.rb +9 -10
  139. data/spec/grape/validations/multiple_attributes_iterator_spec.rb +14 -3
  140. data/spec/grape/validations/params_scope_spec.rb +72 -10
  141. data/spec/grape/validations/single_attribute_iterator_spec.rb +18 -6
  142. data/spec/grape/validations/types/primitive_coercer_spec.rb +63 -7
  143. data/spec/grape/validations/types_spec.rb +8 -8
  144. data/spec/grape/validations/validators/all_or_none_spec.rb +50 -56
  145. data/spec/grape/validations/validators/allow_blank_spec.rb +136 -140
  146. data/spec/grape/validations/validators/at_least_one_of_spec.rb +50 -56
  147. data/spec/grape/validations/validators/coerce_spec.rb +248 -33
  148. data/spec/grape/validations/validators/default_spec.rb +121 -78
  149. data/spec/grape/validations/validators/exactly_one_of_spec.rb +71 -77
  150. data/spec/grape/validations/validators/except_values_spec.rb +4 -3
  151. data/spec/grape/validations/validators/mutual_exclusion_spec.rb +71 -77
  152. data/spec/grape/validations/validators/presence_spec.rb +16 -1
  153. data/spec/grape/validations/validators/regexp_spec.rb +25 -31
  154. data/spec/grape/validations/validators/same_as_spec.rb +14 -20
  155. data/spec/grape/validations/validators/values_spec.rb +183 -178
  156. data/spec/grape/validations_spec.rb +342 -29
  157. data/spec/integration/eager_load/eager_load_spec.rb +15 -0
  158. data/spec/integration/multi_json/json_spec.rb +1 -1
  159. data/spec/integration/multi_xml/xml_spec.rb +1 -1
  160. data/spec/shared/versioning_examples.rb +32 -29
  161. data/spec/spec_helper.rb +12 -12
  162. data/spec/support/basic_auth_encode_helpers.rb +1 -1
  163. data/spec/support/chunks.rb +14 -0
  164. data/spec/support/versioned_helpers.rb +4 -6
  165. metadata +110 -102
@@ -7,7 +7,7 @@ shared_examples_for 'versioning' do
7
7
  subject.get :hello do
8
8
  "Version: #{request.env['api.version']}"
9
9
  end
10
- versioned_get '/hello', 'v1', macro_options
10
+ versioned_get '/hello', 'v1', **macro_options
11
11
  expect(last_response.body).to eql 'Version: v1'
12
12
  end
13
13
 
@@ -18,7 +18,7 @@ shared_examples_for 'versioning' do
18
18
  subject.get :hello do
19
19
  "Version: #{request.env['api.version']}"
20
20
  end
21
- versioned_get '/hello', 'v1', macro_options.merge(prefix: 'api')
21
+ versioned_get '/hello', 'v1', **macro_options.merge(prefix: 'api')
22
22
  expect(last_response.body).to eql 'Version: v1'
23
23
  end
24
24
 
@@ -34,15 +34,15 @@ shared_examples_for 'versioning' do
34
34
  end
35
35
  end
36
36
 
37
- versioned_get '/awesome', 'v1', macro_options
38
- expect(last_response.status).to eql 404
37
+ versioned_get '/awesome', 'v1', **macro_options
38
+ expect(last_response.status).to be 404
39
39
 
40
- versioned_get '/awesome', 'v2', macro_options
41
- expect(last_response.status).to eql 200
42
- versioned_get '/legacy', 'v1', macro_options
43
- expect(last_response.status).to eql 200
44
- versioned_get '/legacy', 'v2', macro_options
45
- expect(last_response.status).to eql 404
40
+ versioned_get '/awesome', 'v2', **macro_options
41
+ expect(last_response.status).to be 200
42
+ versioned_get '/legacy', 'v1', **macro_options
43
+ expect(last_response.status).to be 200
44
+ versioned_get '/legacy', 'v2', **macro_options
45
+ expect(last_response.status).to be 404
46
46
  end
47
47
 
48
48
  it 'is able to specify multiple versions' do
@@ -51,12 +51,12 @@ shared_examples_for 'versioning' do
51
51
  'I exist'
52
52
  end
53
53
 
54
- versioned_get '/awesome', 'v1', macro_options
55
- expect(last_response.status).to eql 200
56
- versioned_get '/awesome', 'v2', macro_options
57
- expect(last_response.status).to eql 200
58
- versioned_get '/awesome', 'v3', macro_options
59
- expect(last_response.status).to eql 404
54
+ versioned_get '/awesome', 'v1', **macro_options
55
+ expect(last_response.status).to be 200
56
+ versioned_get '/awesome', 'v2', **macro_options
57
+ expect(last_response.status).to be 200
58
+ versioned_get '/awesome', 'v3', **macro_options
59
+ expect(last_response.status).to be 404
60
60
  end
61
61
 
62
62
  context 'with different versions for the same endpoint' do
@@ -70,14 +70,14 @@ shared_examples_for 'versioning' do
70
70
 
71
71
  subject.version 'v1', macro_options do
72
72
  get 'version' do
73
- 'version ' + request.env['api.version']
73
+ "version #{request.env['api.version']}"
74
74
  end
75
75
  end
76
76
 
77
- versioned_get '/version', 'v2', macro_options
77
+ versioned_get '/version', 'v2', **macro_options
78
78
  expect(last_response.status).to eq(200)
79
79
  expect(last_response.body).to eq('v2')
80
- versioned_get '/version', 'v1', macro_options
80
+ versioned_get '/version', 'v1', **macro_options
81
81
  expect(last_response.status).to eq(200)
82
82
  expect(last_response.body).to eq('version v1')
83
83
  end
@@ -94,15 +94,15 @@ shared_examples_for 'versioning' do
94
94
 
95
95
  subject.version 'v1', macro_options do
96
96
  get 'version' do
97
- 'version ' + request.env['api.version']
97
+ "version #{request.env['api.version']}"
98
98
  end
99
99
  end
100
100
 
101
- versioned_get '/version', 'v1', macro_options.merge(prefix: subject.prefix)
101
+ versioned_get '/version', 'v1', **macro_options.merge(prefix: subject.prefix)
102
102
  expect(last_response.status).to eq(200)
103
103
  expect(last_response.body).to eq('version v1')
104
104
 
105
- versioned_get '/version', 'v2', macro_options.merge(prefix: subject.prefix)
105
+ versioned_get '/version', 'v2', **macro_options.merge(prefix: subject.prefix)
106
106
  expect(last_response.status).to eq(200)
107
107
  expect(last_response.body).to eq('v2')
108
108
  end
@@ -117,6 +117,7 @@ shared_examples_for 'versioning' do
117
117
  before do
118
118
  @output ||= 'v2-'
119
119
  end
120
+
120
121
  get 'version' do
121
122
  @output += 'version'
122
123
  end
@@ -126,16 +127,17 @@ shared_examples_for 'versioning' do
126
127
  before do
127
128
  @output ||= 'v1-'
128
129
  end
130
+
129
131
  get 'version' do
130
132
  @output += 'version'
131
133
  end
132
134
  end
133
135
 
134
- versioned_get '/version', 'v1', macro_options.merge(prefix: subject.prefix)
136
+ versioned_get '/version', 'v1', **macro_options.merge(prefix: subject.prefix)
135
137
  expect(last_response.status).to eq(200)
136
138
  expect(last_response.body).to eq('v1-version')
137
139
 
138
- versioned_get '/version', 'v2', macro_options.merge(prefix: subject.prefix)
140
+ versioned_get '/version', 'v2', **macro_options.merge(prefix: subject.prefix)
139
141
  expect(last_response.status).to eq(200)
140
142
  expect(last_response.body).to eq('v2-version')
141
143
  end
@@ -148,7 +150,7 @@ shared_examples_for 'versioning' do
148
150
  subject.get :api_version_with_version_param do
149
151
  params[:version]
150
152
  end
151
- versioned_get '/api_version_with_version_param?version=1', 'v1', macro_options
153
+ versioned_get '/api_version_with_version_param?version=1', 'v1', **macro_options
152
154
  expect(last_response.body).to eql '1'
153
155
  end
154
156
 
@@ -170,6 +172,7 @@ shared_examples_for 'versioning' do
170
172
  end
171
173
  klass
172
174
  end
175
+
173
176
  before do
174
177
  subject.format :txt
175
178
 
@@ -183,13 +186,13 @@ shared_examples_for 'versioning' do
183
186
 
184
187
  context 'v1' do
185
188
  it 'finds endpoint' do
186
- versioned_get '/version', 'v1', macro_options
189
+ versioned_get '/version', 'v1', **macro_options
187
190
  expect(last_response.status).to eq(200)
188
191
  expect(last_response.body).to eq('v1')
189
192
  end
190
193
 
191
194
  it 'finds catch all' do
192
- versioned_get '/whatever', 'v1', macro_options
195
+ versioned_get '/whatever', 'v1', **macro_options
193
196
  expect(last_response.status).to eq(200)
194
197
  expect(last_response.body).to end_with 'whatever'
195
198
  end
@@ -197,13 +200,13 @@ shared_examples_for 'versioning' do
197
200
 
198
201
  context 'v2' do
199
202
  it 'finds endpoint' do
200
- versioned_get '/version', 'v2', macro_options
203
+ versioned_get '/version', 'v2', **macro_options
201
204
  expect(last_response.status).to eq(200)
202
205
  expect(last_response.body).to eq('v2')
203
206
  end
204
207
 
205
208
  it 'finds catch all' do
206
- versioned_get '/whatever', 'v2', macro_options
209
+ versioned_get '/whatever', 'v2', **macro_options
207
210
  expect(last_response.status).to eq(200)
208
211
  expect(last_response.body).to end_with 'whatever'
209
212
  end
data/spec/spec_helper.rb CHANGED
@@ -5,12 +5,21 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
5
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'support'))
6
6
 
7
7
  require 'grape'
8
+ require 'test_prof/recipes/rspec/let_it_be'
9
+
10
+ class NullAdapter
11
+ def begin_transaction; end
12
+
13
+ def rollback_transaction; end
14
+ end
15
+
16
+ TestProf::BeforeAll.adapter = NullAdapter.new
8
17
 
9
18
  require 'rubygems'
10
19
  require 'bundler'
11
20
  Bundler.require :default, :test
12
21
 
13
- Dir["#{File.dirname(__FILE__)}/support/*.rb"].each do |file|
22
+ Dir["#{File.dirname(__FILE__)}/support/*.rb"].sort.each do |file|
14
23
  require file
15
24
  end
16
25
 
@@ -20,24 +29,15 @@ eager_load!
20
29
  # so it should be set to true here as well to reflect that.
21
30
  I18n.enforce_available_locales = true
22
31
 
23
- module Chunks
24
- def read_chunks(body)
25
- buffer = []
26
- body.each { |chunk| buffer << chunk }
27
-
28
- buffer
29
- end
30
- end
31
-
32
32
  RSpec.configure do |config|
33
- config.include Chunks
34
33
  config.include Rack::Test::Methods
35
34
  config.include Spec::Support::Helpers
36
35
  config.raise_errors_for_deprecations!
37
36
  config.filter_run_when_matching :focus
38
37
  config.warnings = true
39
38
 
40
- config.before(:each) { Grape::Util::InheritableSetting.reset_global! }
39
+ config.before(:all) { Grape::Util::InheritableSetting.reset_global! }
40
+ config.before { Grape::Util::InheritableSetting.reset_global! }
41
41
 
42
42
  # Enable flags like --only-failures and --next-failure
43
43
  config.example_status_persistence_file_path = '.rspec_status'
@@ -4,7 +4,7 @@ module Spec
4
4
  module Support
5
5
  module Helpers
6
6
  def encode_basic_auth(username, password)
7
- 'Basic ' + Base64.encode64("#{username}:#{password}")
7
+ "Basic #{Base64.encode64("#{username}:#{password}")}"
8
8
  end
9
9
  end
10
10
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chunks
4
+ def read_chunks(body)
5
+ buffer = []
6
+ body.each { |chunk| buffer << chunk }
7
+
8
+ buffer
9
+ end
10
+ end
11
+
12
+ RSpec.configure do |config|
13
+ config.include Chunks
14
+ end
@@ -6,7 +6,7 @@ module Spec
6
6
  module Helpers
7
7
  # Returns the path with options[:version] prefixed if options[:using] is :path.
8
8
  # Returns normal path otherwise.
9
- def versioned_path(options = {})
9
+ def versioned_path(**options)
10
10
  case options[:using]
11
11
  when :path
12
12
  File.join('/', options[:prefix] || '', options[:version], options[:path])
@@ -43,13 +43,11 @@ module Spec
43
43
  end
44
44
  end
45
45
 
46
- def versioned_get(path, version_name, version_options = {})
47
- path = versioned_path(version_options.merge(version: version_name, path: path))
46
+ def versioned_get(path, version_name, **version_options)
47
+ path = versioned_path(**version_options.merge(version: version_name, path: path))
48
48
  headers = versioned_headers(**version_options.merge(version: version_name))
49
49
  params = {}
50
- if version_options[:using] == :param
51
- params = { version_options[:parameter] => version_name }
52
- end
50
+ params = { version_options[:parameter] => version_name } if version_options[:using] == :param
53
51
  get path, params, headers
54
52
  end
55
53
  end
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: 1.3.3
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bleigh
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-23 00:00:00.000000000 Z
11
+ date: 2021-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -137,6 +137,7 @@ files:
137
137
  - lib/grape/error_formatter/txt.rb
138
138
  - lib/grape/error_formatter/xml.rb
139
139
  - lib/grape/exceptions/base.rb
140
+ - lib/grape/exceptions/empty_message_body.rb
140
141
  - lib/grape/exceptions/incompatible_option_values.rb
141
142
  - lib/grape/exceptions/invalid_accept_header.rb
142
143
  - lib/grape/exceptions/invalid_formatter.rb
@@ -197,9 +198,9 @@ files:
197
198
  - lib/grape/router/attribute_translator.rb
198
199
  - lib/grape/router/pattern.rb
199
200
  - lib/grape/router/route.rb
200
- - lib/grape/serve_file/file_body.rb
201
- - lib/grape/serve_file/file_response.rb
202
- - lib/grape/serve_file/sendfile_response.rb
201
+ - lib/grape/serve_stream/file_body.rb
202
+ - lib/grape/serve_stream/sendfile_response.rb
203
+ - lib/grape/serve_stream/stream_response.rb
203
204
  - lib/grape/util/base_inheritable.rb
204
205
  - lib/grape/util/cache.rb
205
206
  - lib/grape/util/endpoint_configuration.rb
@@ -227,6 +228,7 @@ files:
227
228
  - lib/grape/validations/types/custom_type_collection_coercer.rb
228
229
  - lib/grape/validations/types/dry_type_coercer.rb
229
230
  - lib/grape/validations/types/file.rb
231
+ - lib/grape/validations/types/invalid_value.rb
230
232
  - lib/grape/validations/types/json.rb
231
233
  - lib/grape/validations/types/multiple_type_coercer.rb
232
234
  - lib/grape/validations/types/primitive_coercer.rb
@@ -282,6 +284,7 @@ files:
282
284
  - spec/grape/dsl/routing_spec.rb
283
285
  - spec/grape/dsl/settings_spec.rb
284
286
  - spec/grape/dsl/validations_spec.rb
287
+ - spec/grape/endpoint/declared_spec.rb
285
288
  - spec/grape/endpoint_spec.rb
286
289
  - spec/grape/entity_spec.rb
287
290
  - spec/grape/exceptions/base_spec.rb
@@ -350,11 +353,13 @@ files:
350
353
  - spec/grape/validations/validators/values_spec.rb
351
354
  - spec/grape/validations/validators/zh-CN.yml
352
355
  - spec/grape/validations_spec.rb
356
+ - spec/integration/eager_load/eager_load_spec.rb
353
357
  - spec/integration/multi_json/json_spec.rb
354
358
  - spec/integration/multi_xml/xml_spec.rb
355
359
  - spec/shared/versioning_examples.rb
356
360
  - spec/spec_helper.rb
357
361
  - spec/support/basic_auth_encode_helpers.rb
362
+ - spec/support/chunks.rb
358
363
  - spec/support/content_type_helpers.rb
359
364
  - spec/support/eager_load.rb
360
365
  - spec/support/endpoint_faker.rb
@@ -366,10 +371,10 @@ licenses:
366
371
  - MIT
367
372
  metadata:
368
373
  bug_tracker_uri: https://github.com/ruby-grape/grape/issues
369
- changelog_uri: https://github.com/ruby-grape/grape/blob/v1.3.3/CHANGELOG.md
370
- documentation_uri: https://www.rubydoc.info/gems/grape/1.3.3
371
- source_code_uri: https://github.com/ruby-grape/grape/tree/v1.3.3
372
- post_install_message:
374
+ changelog_uri: https://github.com/ruby-grape/grape/blob/v1.6.2/CHANGELOG.md
375
+ documentation_uri: https://www.rubydoc.info/gems/grape/1.6.2
376
+ source_code_uri: https://github.com/ruby-grape/grape/tree/v1.6.2
377
+ post_install_message:
373
378
  rdoc_options: []
374
379
  require_paths:
375
380
  - lib
@@ -377,127 +382,130 @@ required_ruby_version: !ruby/object:Gem::Requirement
377
382
  requirements:
378
383
  - - ">="
379
384
  - !ruby/object:Gem::Version
380
- version: 2.4.0
385
+ version: 2.5.0
381
386
  required_rubygems_version: !ruby/object:Gem::Requirement
382
387
  requirements:
383
388
  - - ">="
384
389
  - !ruby/object:Gem::Version
385
390
  version: '0'
386
391
  requirements: []
387
- rubygems_version: 3.0.3
388
- signing_key:
392
+ rubygems_version: 3.3.0.dev
393
+ signing_key:
389
394
  specification_version: 4
390
395
  summary: A simple Ruby framework for building REST-like APIs.
391
396
  test_files:
392
- - spec/shared/versioning_examples.rb
393
- - spec/support/versioned_helpers.rb
394
- - spec/support/content_type_helpers.rb
395
- - spec/support/eager_load.rb
396
- - spec/support/basic_auth_encode_helpers.rb
397
- - spec/support/file_streamer.rb
398
- - spec/support/endpoint_faker.rb
399
- - spec/support/integer_helpers.rb
400
- - spec/grape/api/namespace_parameters_in_route_spec.rb
401
- - spec/grape/api/routes_with_requirements_spec.rb
402
- - spec/grape/api/nested_helpers_spec.rb
403
- - spec/grape/api/required_parameters_in_route_spec.rb
404
- - spec/grape/api/shared_helpers_exactly_one_of_spec.rb
405
- - spec/grape/api/parameters_modification_spec.rb
406
- - spec/grape/api/optional_parameters_in_route_spec.rb
407
- - spec/grape/api/inherited_helpers_spec.rb
408
- - spec/grape/api/required_parameters_with_invalid_method_spec.rb
409
397
  - spec/grape/api/custom_validations_spec.rb
410
- - spec/grape/api/defines_boolean_in_params_spec.rb
411
- - spec/grape/api/shared_helpers_spec.rb
412
- - spec/grape/api/invalid_format_spec.rb
413
398
  - spec/grape/api/deeply_included_options_spec.rb
399
+ - spec/grape/api/defines_boolean_in_params_spec.rb
400
+ - spec/grape/api/inherited_helpers_spec.rb
414
401
  - spec/grape/api/instance_spec.rb
402
+ - spec/grape/api/invalid_format_spec.rb
403
+ - spec/grape/api/namespace_parameters_in_route_spec.rb
404
+ - spec/grape/api/nested_helpers_spec.rb
405
+ - spec/grape/api/optional_parameters_in_route_spec.rb
406
+ - spec/grape/api/parameters_modification_spec.rb
415
407
  - spec/grape/api/patch_method_helpers_spec.rb
416
408
  - spec/grape/api/recognize_path_spec.rb
409
+ - spec/grape/api/required_parameters_in_route_spec.rb
410
+ - spec/grape/api/required_parameters_with_invalid_method_spec.rb
411
+ - spec/grape/api/routes_with_requirements_spec.rb
412
+ - spec/grape/api/shared_helpers_exactly_one_of_spec.rb
413
+ - spec/grape/api/shared_helpers_spec.rb
417
414
  - spec/grape/api_remount_spec.rb
418
- - spec/grape/validations/types_spec.rb
419
- - spec/grape/validations/attributes_iterator_spec.rb
420
- - spec/grape/validations/types/array_coercer_spec.rb
421
- - spec/grape/validations/types/set_coercer_spec.rb
422
- - spec/grape/validations/types/primitive_coercer_spec.rb
423
- - spec/grape/validations/validators/regexp_spec.rb
424
- - spec/grape/validations/validators/default_spec.rb
425
- - spec/grape/validations/validators/values_spec.rb
426
- - spec/grape/validations/validators/same_as_spec.rb
427
- - spec/grape/validations/validators/mutual_exclusion_spec.rb
428
- - spec/grape/validations/validators/except_values_spec.rb
429
- - spec/grape/validations/validators/exactly_one_of_spec.rb
430
- - spec/grape/validations/validators/allow_blank_spec.rb
431
- - spec/grape/validations/validators/coerce_spec.rb
432
- - spec/grape/validations/validators/presence_spec.rb
433
- - spec/grape/validations/validators/at_least_one_of_spec.rb
434
- - spec/grape/validations/validators/zh-CN.yml
435
- - spec/grape/validations/validators/all_or_none_spec.rb
436
- - spec/grape/validations/params_scope_spec.rb
437
- - spec/grape/validations/multiple_attributes_iterator_spec.rb
438
- - spec/grape/validations/instance_behaivour_spec.rb
439
- - spec/grape/validations/single_attribute_iterator_spec.rb
415
+ - spec/grape/api_spec.rb
440
416
  - spec/grape/config_spec.rb
441
- - spec/grape/parser_spec.rb
417
+ - spec/grape/dsl/callbacks_spec.rb
418
+ - spec/grape/dsl/configuration_spec.rb
419
+ - spec/grape/dsl/desc_spec.rb
420
+ - spec/grape/dsl/headers_spec.rb
421
+ - spec/grape/dsl/helpers_spec.rb
422
+ - spec/grape/dsl/inside_route_spec.rb
423
+ - spec/grape/dsl/logger_spec.rb
424
+ - spec/grape/dsl/middleware_spec.rb
425
+ - spec/grape/dsl/parameters_spec.rb
426
+ - spec/grape/dsl/request_response_spec.rb
427
+ - spec/grape/dsl/routing_spec.rb
428
+ - spec/grape/dsl/settings_spec.rb
429
+ - spec/grape/dsl/validations_spec.rb
430
+ - spec/grape/endpoint/declared_spec.rb
431
+ - spec/grape/endpoint_spec.rb
432
+ - spec/grape/entity_spec.rb
433
+ - spec/grape/exceptions/base_spec.rb
442
434
  - spec/grape/exceptions/body_parse_errors_spec.rb
443
- - spec/grape/exceptions/missing_option_spec.rb
444
435
  - spec/grape/exceptions/invalid_accept_header_spec.rb
445
- - spec/grape/exceptions/validation_spec.rb
446
- - spec/grape/exceptions/unknown_validator_spec.rb
447
- - spec/grape/exceptions/validation_errors_spec.rb
448
- - spec/grape/exceptions/invalid_response_spec.rb
449
- - spec/grape/exceptions/unknown_options_spec.rb
450
436
  - spec/grape/exceptions/invalid_formatter_spec.rb
437
+ - spec/grape/exceptions/invalid_response_spec.rb
451
438
  - spec/grape/exceptions/invalid_versioner_option_spec.rb
452
439
  - spec/grape/exceptions/missing_mime_type_spec.rb
453
- - spec/grape/exceptions/base_spec.rb
454
- - spec/grape/path_spec.rb
455
- - spec/grape/util/stackable_values_spec.rb
456
- - spec/grape/util/strict_hash_configuration_spec.rb
457
- - spec/grape/util/inheritable_setting_spec.rb
458
- - spec/grape/util/reverse_stackable_values_spec.rb
459
- - spec/grape/util/inheritable_values_spec.rb
460
- - spec/grape/extensions/param_builders/hash_with_indifferent_access_spec.rb
440
+ - spec/grape/exceptions/missing_option_spec.rb
441
+ - spec/grape/exceptions/unknown_options_spec.rb
442
+ - spec/grape/exceptions/unknown_validator_spec.rb
443
+ - spec/grape/exceptions/validation_errors_spec.rb
444
+ - spec/grape/exceptions/validation_spec.rb
461
445
  - spec/grape/extensions/param_builders/hash_spec.rb
446
+ - spec/grape/extensions/param_builders/hash_with_indifferent_access_spec.rb
462
447
  - spec/grape/extensions/param_builders/hashie/mash_spec.rb
463
- - spec/grape/integration/rack_spec.rb
464
- - spec/grape/integration/rack_sendfile_spec.rb
465
448
  - spec/grape/integration/global_namespace_function_spec.rb
466
- - spec/grape/presenters/presenter_spec.rb
467
- - spec/grape/endpoint_spec.rb
468
- - spec/grape/api_spec.rb
449
+ - spec/grape/integration/rack_sendfile_spec.rb
450
+ - spec/grape/integration/rack_spec.rb
451
+ - spec/grape/loading_spec.rb
452
+ - spec/grape/middleware/auth/base_spec.rb
453
+ - spec/grape/middleware/auth/dsl_spec.rb
454
+ - spec/grape/middleware/auth/strategies_spec.rb
455
+ - spec/grape/middleware/base_spec.rb
456
+ - spec/grape/middleware/error_spec.rb
469
457
  - spec/grape/middleware/exception_spec.rb
470
- - spec/grape/middleware/versioner/param_spec.rb
471
- - spec/grape/middleware/versioner/header_spec.rb
472
- - spec/grape/middleware/versioner/path_spec.rb
473
- - spec/grape/middleware/versioner/accept_version_header_spec.rb
458
+ - spec/grape/middleware/formatter_spec.rb
474
459
  - spec/grape/middleware/globals_spec.rb
475
460
  - spec/grape/middleware/stack_spec.rb
476
- - spec/grape/middleware/formatter_spec.rb
477
- - spec/grape/middleware/error_spec.rb
478
- - spec/grape/middleware/auth/dsl_spec.rb
479
- - spec/grape/middleware/auth/strategies_spec.rb
480
- - spec/grape/middleware/auth/base_spec.rb
461
+ - spec/grape/middleware/versioner/accept_version_header_spec.rb
462
+ - spec/grape/middleware/versioner/header_spec.rb
463
+ - spec/grape/middleware/versioner/param_spec.rb
464
+ - spec/grape/middleware/versioner/path_spec.rb
481
465
  - spec/grape/middleware/versioner_spec.rb
482
- - spec/grape/middleware/base_spec.rb
483
- - spec/grape/entity_spec.rb
484
- - spec/grape/dsl/settings_spec.rb
485
- - spec/grape/dsl/callbacks_spec.rb
486
- - spec/grape/dsl/middleware_spec.rb
487
- - spec/grape/dsl/inside_route_spec.rb
488
- - spec/grape/dsl/configuration_spec.rb
489
- - spec/grape/dsl/parameters_spec.rb
490
- - spec/grape/dsl/logger_spec.rb
491
- - spec/grape/dsl/helpers_spec.rb
492
- - spec/grape/dsl/request_response_spec.rb
493
- - spec/grape/dsl/routing_spec.rb
494
- - spec/grape/dsl/headers_spec.rb
495
- - spec/grape/dsl/validations_spec.rb
496
- - spec/grape/dsl/desc_spec.rb
497
- - spec/grape/validations_spec.rb
498
466
  - spec/grape/named_api_spec.rb
499
- - spec/grape/loading_spec.rb
467
+ - spec/grape/parser_spec.rb
468
+ - spec/grape/path_spec.rb
469
+ - spec/grape/presenters/presenter_spec.rb
500
470
  - spec/grape/request_spec.rb
501
- - spec/integration/multi_xml/xml_spec.rb
471
+ - spec/grape/util/inheritable_setting_spec.rb
472
+ - spec/grape/util/inheritable_values_spec.rb
473
+ - spec/grape/util/reverse_stackable_values_spec.rb
474
+ - spec/grape/util/stackable_values_spec.rb
475
+ - spec/grape/util/strict_hash_configuration_spec.rb
476
+ - spec/grape/validations/attributes_iterator_spec.rb
477
+ - spec/grape/validations/instance_behaivour_spec.rb
478
+ - spec/grape/validations/multiple_attributes_iterator_spec.rb
479
+ - spec/grape/validations/params_scope_spec.rb
480
+ - spec/grape/validations/single_attribute_iterator_spec.rb
481
+ - spec/grape/validations/types/array_coercer_spec.rb
482
+ - spec/grape/validations/types/primitive_coercer_spec.rb
483
+ - spec/grape/validations/types/set_coercer_spec.rb
484
+ - spec/grape/validations/types_spec.rb
485
+ - spec/grape/validations/validators/all_or_none_spec.rb
486
+ - spec/grape/validations/validators/allow_blank_spec.rb
487
+ - spec/grape/validations/validators/at_least_one_of_spec.rb
488
+ - spec/grape/validations/validators/coerce_spec.rb
489
+ - spec/grape/validations/validators/default_spec.rb
490
+ - spec/grape/validations/validators/exactly_one_of_spec.rb
491
+ - spec/grape/validations/validators/except_values_spec.rb
492
+ - spec/grape/validations/validators/mutual_exclusion_spec.rb
493
+ - spec/grape/validations/validators/presence_spec.rb
494
+ - spec/grape/validations/validators/regexp_spec.rb
495
+ - spec/grape/validations/validators/same_as_spec.rb
496
+ - spec/grape/validations/validators/values_spec.rb
497
+ - spec/grape/validations/validators/zh-CN.yml
498
+ - spec/grape/validations_spec.rb
499
+ - spec/integration/eager_load/eager_load_spec.rb
502
500
  - spec/integration/multi_json/json_spec.rb
501
+ - spec/integration/multi_xml/xml_spec.rb
502
+ - spec/shared/versioning_examples.rb
503
503
  - spec/spec_helper.rb
504
+ - spec/support/basic_auth_encode_helpers.rb
505
+ - spec/support/chunks.rb
506
+ - spec/support/content_type_helpers.rb
507
+ - spec/support/eager_load.rb
508
+ - spec/support/endpoint_faker.rb
509
+ - spec/support/file_streamer.rb
510
+ - spec/support/integer_helpers.rb
511
+ - spec/support/versioned_helpers.rb