grape 2.0.0 → 2.4.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +151 -1
- data/CONTRIBUTING.md +1 -1
- data/README.md +404 -334
- data/UPGRADING.md +279 -7
- data/grape.gemspec +8 -8
- data/lib/grape/api/instance.rb +34 -66
- data/lib/grape/api.rb +47 -70
- data/lib/grape/content_types.rb +13 -10
- data/lib/grape/cookies.rb +31 -24
- data/lib/grape/dry_types.rb +0 -2
- data/lib/grape/dsl/api.rb +0 -2
- data/lib/grape/dsl/desc.rb +49 -44
- data/lib/grape/dsl/headers.rb +2 -2
- data/lib/grape/dsl/helpers.rb +8 -4
- data/lib/grape/dsl/inside_route.rb +67 -54
- data/lib/grape/dsl/parameters.rb +10 -9
- data/lib/grape/dsl/request_response.rb +14 -18
- data/lib/grape/dsl/routing.rb +34 -17
- data/lib/grape/dsl/validations.rb +13 -0
- data/lib/grape/endpoint.rb +120 -118
- data/lib/grape/{util/env.rb → env.rb} +0 -5
- data/lib/grape/error_formatter/base.rb +51 -21
- data/lib/grape/error_formatter/json.rb +7 -15
- data/lib/grape/error_formatter/serializable_hash.rb +7 -0
- data/lib/grape/error_formatter/txt.rb +11 -17
- data/lib/grape/error_formatter/xml.rb +3 -13
- data/lib/grape/error_formatter.rb +5 -25
- data/lib/grape/exceptions/base.rb +18 -30
- data/lib/grape/exceptions/conflicting_types.rb +11 -0
- data/lib/grape/exceptions/invalid_parameters.rb +11 -0
- data/lib/grape/exceptions/too_deep_parameters.rb +11 -0
- data/lib/grape/exceptions/unknown_auth_strategy.rb +11 -0
- data/lib/grape/exceptions/unknown_params_builder.rb +11 -0
- data/lib/grape/exceptions/validation.rb +5 -6
- data/lib/grape/exceptions/validation_array_errors.rb +1 -0
- data/lib/grape/exceptions/validation_errors.rb +4 -6
- data/lib/grape/extensions/active_support/hash_with_indifferent_access.rb +2 -5
- data/lib/grape/extensions/hash.rb +7 -2
- data/lib/grape/extensions/hashie/mash.rb +3 -5
- data/lib/grape/formatter/base.rb +16 -0
- data/lib/grape/formatter/json.rb +4 -6
- data/lib/grape/formatter/serializable_hash.rb +1 -1
- data/lib/grape/formatter/txt.rb +3 -5
- data/lib/grape/formatter/xml.rb +4 -6
- data/lib/grape/formatter.rb +7 -25
- data/lib/grape/{util/json.rb → json.rb} +1 -3
- data/lib/grape/locale/en.yml +46 -42
- data/lib/grape/middleware/auth/base.rb +11 -34
- data/lib/grape/middleware/auth/dsl.rb +23 -31
- data/lib/grape/middleware/base.rb +41 -23
- data/lib/grape/middleware/error.rb +77 -76
- data/lib/grape/middleware/formatter.rb +48 -79
- data/lib/grape/middleware/globals.rb +1 -3
- data/lib/grape/middleware/stack.rb +26 -37
- data/lib/grape/middleware/versioner/accept_version_header.rb +6 -33
- data/lib/grape/middleware/versioner/base.rb +74 -0
- data/lib/grape/middleware/versioner/header.rb +59 -126
- data/lib/grape/middleware/versioner/param.rb +4 -25
- data/lib/grape/middleware/versioner/path.rb +10 -34
- data/lib/grape/middleware/versioner.rb +7 -14
- data/lib/grape/namespace.rb +4 -5
- data/lib/grape/params_builder/base.rb +18 -0
- data/lib/grape/params_builder/hash.rb +11 -0
- data/lib/grape/params_builder/hash_with_indifferent_access.rb +11 -0
- data/lib/grape/params_builder/hashie_mash.rb +11 -0
- data/lib/grape/params_builder.rb +32 -0
- data/lib/grape/parser/base.rb +16 -0
- data/lib/grape/parser/json.rb +6 -8
- data/lib/grape/parser/xml.rb +6 -8
- data/lib/grape/parser.rb +5 -23
- data/lib/grape/path.rb +38 -60
- data/lib/grape/request.rb +161 -30
- data/lib/grape/router/base_route.rb +39 -0
- data/lib/grape/router/greedy_route.rb +20 -0
- data/lib/grape/router/pattern.rb +45 -31
- data/lib/grape/router/route.rb +28 -57
- data/lib/grape/router.rb +56 -43
- data/lib/grape/util/base_inheritable.rb +4 -4
- data/lib/grape/util/cache.rb +0 -3
- data/lib/grape/util/endpoint_configuration.rb +1 -1
- data/lib/grape/util/header.rb +13 -0
- data/lib/grape/util/inheritable_values.rb +0 -2
- data/lib/grape/util/lazy/block.rb +29 -0
- data/lib/grape/util/lazy/value.rb +38 -0
- data/lib/grape/util/lazy/value_array.rb +21 -0
- data/lib/grape/util/lazy/value_enumerable.rb +34 -0
- data/lib/grape/util/lazy/value_hash.rb +21 -0
- data/lib/grape/util/media_type.rb +70 -0
- data/lib/grape/util/registry.rb +27 -0
- data/lib/grape/util/reverse_stackable_values.rb +1 -6
- data/lib/grape/util/stackable_values.rb +1 -6
- data/lib/grape/util/strict_hash_configuration.rb +3 -3
- data/lib/grape/validations/attributes_doc.rb +38 -36
- data/lib/grape/validations/attributes_iterator.rb +1 -0
- data/lib/grape/validations/contract_scope.rb +34 -0
- data/lib/grape/validations/params_scope.rb +36 -32
- data/lib/grape/validations/types/array_coercer.rb +0 -2
- data/lib/grape/validations/types/dry_type_coercer.rb +9 -15
- data/lib/grape/validations/types/json.rb +0 -2
- data/lib/grape/validations/types/primitive_coercer.rb +0 -2
- data/lib/grape/validations/types/set_coercer.rb +0 -3
- data/lib/grape/validations/types.rb +0 -3
- data/lib/grape/validations/validator_factory.rb +2 -2
- data/lib/grape/validations/validators/allow_blank_validator.rb +1 -1
- data/lib/grape/validations/validators/base.rb +8 -11
- data/lib/grape/validations/validators/coerce_validator.rb +1 -1
- data/lib/grape/validations/validators/contract_scope_validator.rb +41 -0
- data/lib/grape/validations/validators/default_validator.rb +6 -2
- data/lib/grape/validations/validators/exactly_one_of_validator.rb +1 -1
- data/lib/grape/validations/validators/except_values_validator.rb +2 -2
- data/lib/grape/validations/validators/length_validator.rb +49 -0
- data/lib/grape/validations/validators/presence_validator.rb +1 -1
- data/lib/grape/validations/validators/regexp_validator.rb +2 -2
- data/lib/grape/validations/validators/values_validator.rb +20 -57
- data/lib/grape/validations.rb +8 -21
- data/lib/grape/version.rb +1 -1
- data/lib/grape/{util/xml.rb → xml.rb} +1 -1
- data/lib/grape.rb +42 -274
- metadata +45 -44
- data/lib/grape/eager_load.rb +0 -20
- data/lib/grape/http/headers.rb +0 -71
- data/lib/grape/middleware/helpers.rb +0 -12
- data/lib/grape/middleware/versioner/parse_media_type_patch.rb +0 -24
- data/lib/grape/router/attribute_translator.rb +0 -63
- data/lib/grape/util/lazy_block.rb +0 -27
- data/lib/grape/util/lazy_object.rb +0 -43
- data/lib/grape/util/lazy_value.rb +0 -91
- data/lib/grape/util/registrable.rb +0 -15
- data/lib/grape/validations/types/build_coercer.rb +0 -94
@@ -4,23 +4,8 @@ module Grape
|
|
4
4
|
module Validations
|
5
5
|
module Validators
|
6
6
|
class ValuesValidator < Base
|
7
|
-
def initialize(attrs, options, required, scope,
|
8
|
-
|
9
|
-
@excepts = options[:except]
|
10
|
-
@values = options[:value]
|
11
|
-
@proc = options[:proc]
|
12
|
-
|
13
|
-
Grape.deprecator.warn('The values validator except option is deprecated. Use the except validator instead.') if @excepts
|
14
|
-
|
15
|
-
raise ArgumentError, 'proc must be a Proc' if @proc && !@proc.is_a?(Proc)
|
16
|
-
|
17
|
-
Grape.deprecator.warn('The values validator proc option is deprecated. The lambda expression can now be assigned directly to values.') if @proc
|
18
|
-
else
|
19
|
-
@excepts = nil
|
20
|
-
@values = nil
|
21
|
-
@proc = nil
|
22
|
-
@values = options
|
23
|
-
end
|
7
|
+
def initialize(attrs, options, required, scope, opts)
|
8
|
+
@values = options.is_a?(Hash) ? options[:value] : options
|
24
9
|
super
|
25
10
|
end
|
26
11
|
|
@@ -31,65 +16,43 @@ module Grape
|
|
31
16
|
|
32
17
|
return if val.nil? && !required_for_root_scope?
|
33
18
|
|
19
|
+
val = val.scrub if val.respond_to?(:scrub)
|
20
|
+
|
34
21
|
# don't forget that +false.blank?+ is true
|
35
22
|
return if val != false && val.blank? && @allow_blank
|
36
23
|
|
37
|
-
|
38
|
-
|
39
|
-
raise validation_exception(attr_name, except_message) \
|
40
|
-
unless check_excepts(param_array)
|
41
|
-
|
42
|
-
raise validation_exception(attr_name, message(:values)) \
|
43
|
-
unless check_values(param_array, attr_name)
|
24
|
+
return if check_values?(val, attr_name)
|
44
25
|
|
45
|
-
raise
|
46
|
-
|
26
|
+
raise Grape::Exceptions::Validation.new(
|
27
|
+
params: [@scope.full_name(attr_name)],
|
28
|
+
message: message(:values)
|
29
|
+
)
|
47
30
|
end
|
48
31
|
|
49
32
|
private
|
50
33
|
|
51
|
-
def check_values(
|
34
|
+
def check_values?(val, attr_name)
|
52
35
|
values = @values.is_a?(Proc) && @values.arity.zero? ? @values.call : @values
|
53
36
|
return true if values.nil?
|
54
37
|
|
38
|
+
param_array = val.nil? ? [nil] : Array.wrap(val)
|
39
|
+
return param_array.all? { |param| values.include?(param) } unless values.is_a?(Proc)
|
40
|
+
|
55
41
|
begin
|
56
|
-
|
42
|
+
param_array.all? { |param| values.call(param) }
|
57
43
|
rescue StandardError => e
|
58
44
|
warn "Error '#{e}' raised while validating attribute '#{attr_name}'"
|
59
|
-
|
45
|
+
false
|
60
46
|
end
|
61
|
-
param_array.all? { |param| values.include?(param) }
|
62
|
-
end
|
63
|
-
|
64
|
-
def check_excepts(param_array)
|
65
|
-
excepts = @excepts.is_a?(Proc) ? @excepts.call : @excepts
|
66
|
-
return true if excepts.nil?
|
67
|
-
|
68
|
-
param_array.none? { |param| excepts.include?(param) }
|
69
|
-
end
|
70
|
-
|
71
|
-
def validate_proc(proc, param_array)
|
72
|
-
case proc.arity
|
73
|
-
when 0
|
74
|
-
param_array.all? { |_param| proc.call }
|
75
|
-
when 1
|
76
|
-
param_array.all? { |param| proc.call(param) }
|
77
|
-
else
|
78
|
-
raise ArgumentError, 'proc arity must be 0 or 1'
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def except_message
|
83
|
-
options = instance_variable_get(:@option)
|
84
|
-
options_key?(:except_message) ? options[:except_message] : message(:except_values)
|
85
47
|
end
|
86
48
|
|
87
49
|
def required_for_root_scope?
|
88
|
-
|
89
|
-
|
50
|
+
return false unless @required
|
51
|
+
|
52
|
+
scope = @scope
|
53
|
+
scope = scope.parent while scope.lateral?
|
90
54
|
|
91
|
-
|
92
|
-
Grape::Exceptions::Validation.new(params: [@scope.full_name(attr_name)], message: message)
|
55
|
+
scope.root?
|
93
56
|
end
|
94
57
|
end
|
95
58
|
end
|
data/lib/grape/validations.rb
CHANGED
@@ -1,34 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Grape
|
4
|
-
# Registry to store and locate known Validators.
|
5
4
|
module Validations
|
5
|
+
extend Grape::Util::Registry
|
6
|
+
|
6
7
|
module_function
|
7
8
|
|
8
|
-
def
|
9
|
-
|
10
|
-
end
|
9
|
+
def require_validator(short_name)
|
10
|
+
raise Grape::Exceptions::UnknownValidator, short_name unless registry.key?(short_name)
|
11
11
|
|
12
|
-
|
13
|
-
# @param short_name [String] all lower-case, no spaces
|
14
|
-
# @param klass [Class] the validator class. Should inherit from
|
15
|
-
# Validations::Base.
|
16
|
-
def register_validator(short_name, klass)
|
17
|
-
validators[short_name] = klass
|
12
|
+
registry[short_name]
|
18
13
|
end
|
19
14
|
|
20
|
-
def
|
21
|
-
|
22
|
-
end
|
15
|
+
def build_short_name(klass)
|
16
|
+
return if klass.name.blank?
|
23
17
|
|
24
|
-
|
25
|
-
def require_validator(short_name)
|
26
|
-
str_name = short_name.to_s
|
27
|
-
validators.fetch(str_name) do
|
28
|
-
Grape::Validations::Validators.const_get("#{str_name.camelize}Validator")
|
29
|
-
end
|
30
|
-
rescue NameError
|
31
|
-
raise Grape::Exceptions::UnknownValidator.new(short_name)
|
18
|
+
klass.name.demodulize.underscore.delete_suffix('_validator')
|
32
19
|
end
|
33
20
|
end
|
34
21
|
end
|
data/lib/grape/version.rb
CHANGED
data/lib/grape.rb
CHANGED
@@ -1,13 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'logger'
|
4
|
-
require 'rack'
|
5
|
-
require 'rack/builder'
|
6
|
-
require 'rack/accept'
|
7
|
-
require 'rack/auth/basic'
|
8
|
-
require 'set'
|
9
|
-
require 'bigdecimal'
|
10
|
-
require 'date'
|
11
4
|
require 'active_support'
|
12
5
|
require 'active_support/concern'
|
13
6
|
require 'active_support/configurable'
|
@@ -24,295 +17,70 @@ require 'active_support/core_ext/hash/indifferent_access'
|
|
24
17
|
require 'active_support/core_ext/hash/keys'
|
25
18
|
require 'active_support/core_ext/hash/reverse_merge'
|
26
19
|
require 'active_support/core_ext/hash/slice'
|
20
|
+
require 'active_support/core_ext/module/delegation'
|
27
21
|
require 'active_support/core_ext/object/blank'
|
28
22
|
require 'active_support/core_ext/object/deep_dup'
|
23
|
+
require 'active_support/core_ext/object/try'
|
29
24
|
require 'active_support/core_ext/object/duplicable'
|
25
|
+
require 'active_support/core_ext/string/output_safety'
|
30
26
|
require 'active_support/core_ext/string/exclude'
|
31
|
-
require 'active_support/dependencies/autoload'
|
32
27
|
require 'active_support/deprecation'
|
33
28
|
require 'active_support/inflector'
|
29
|
+
require 'active_support/ordered_options'
|
34
30
|
require 'active_support/notifications'
|
35
|
-
|
31
|
+
|
32
|
+
require 'English'
|
33
|
+
require 'bigdecimal'
|
34
|
+
require 'date'
|
35
|
+
require 'dry-types'
|
36
|
+
require 'forwardable'
|
37
|
+
require 'json'
|
38
|
+
require 'mustermann/grape'
|
39
|
+
require 'pathname'
|
40
|
+
require 'rack'
|
41
|
+
require 'rack/auth/basic'
|
42
|
+
require 'rack/builder'
|
43
|
+
require 'rack/head'
|
44
|
+
require 'set'
|
45
|
+
require 'singleton'
|
46
|
+
require 'zeitwerk'
|
47
|
+
|
48
|
+
loader = Zeitwerk::Loader.for_gem
|
49
|
+
loader.inflector.inflect(
|
50
|
+
'api' => 'API',
|
51
|
+
'dsl' => 'DSL'
|
52
|
+
)
|
53
|
+
railtie = "#{__dir__}/grape/railtie.rb"
|
54
|
+
loader.do_not_eager_load(railtie)
|
55
|
+
loader.setup
|
36
56
|
|
37
57
|
I18n.load_path << File.expand_path('grape/locale/en.yml', __dir__)
|
38
58
|
|
39
59
|
module Grape
|
40
60
|
include ActiveSupport::Configurable
|
41
|
-
|
61
|
+
|
62
|
+
HTTP_SUPPORTED_METHODS = [
|
63
|
+
Rack::GET,
|
64
|
+
Rack::POST,
|
65
|
+
Rack::PUT,
|
66
|
+
Rack::PATCH,
|
67
|
+
Rack::DELETE,
|
68
|
+
Rack::HEAD,
|
69
|
+
Rack::OPTIONS
|
70
|
+
].freeze
|
42
71
|
|
43
72
|
def self.deprecator
|
44
73
|
@deprecator ||= ActiveSupport::Deprecation.new('2.0', 'Grape')
|
45
74
|
end
|
46
75
|
|
47
|
-
def self.lowercase_headers?
|
48
|
-
Rack::CONTENT_TYPE == 'content-type'
|
49
|
-
end
|
50
|
-
|
51
|
-
eager_autoload do
|
52
|
-
autoload :API
|
53
|
-
autoload :Endpoint
|
54
|
-
|
55
|
-
autoload :Namespace
|
56
|
-
|
57
|
-
autoload :Path
|
58
|
-
autoload :Cookies
|
59
|
-
autoload :Validations
|
60
|
-
autoload :ErrorFormatter
|
61
|
-
autoload :Formatter
|
62
|
-
autoload :Parser
|
63
|
-
autoload :Request
|
64
|
-
autoload :Env, 'grape/util/env'
|
65
|
-
autoload :Json, 'grape/util/json'
|
66
|
-
autoload :Xml, 'grape/util/xml'
|
67
|
-
autoload :DryTypes
|
68
|
-
end
|
69
|
-
|
70
|
-
module Http
|
71
|
-
extend ::ActiveSupport::Autoload
|
72
|
-
eager_autoload do
|
73
|
-
autoload :Headers
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
module Exceptions
|
78
|
-
extend ::ActiveSupport::Autoload
|
79
|
-
eager_autoload do
|
80
|
-
autoload :Base
|
81
|
-
autoload :Validation
|
82
|
-
autoload :ValidationArrayErrors
|
83
|
-
autoload :ValidationErrors
|
84
|
-
autoload :MissingVendorOption
|
85
|
-
autoload :MissingMimeType
|
86
|
-
autoload :MissingOption
|
87
|
-
autoload :InvalidFormatter
|
88
|
-
autoload :InvalidVersionerOption
|
89
|
-
autoload :UnknownValidator
|
90
|
-
autoload :UnknownOptions
|
91
|
-
autoload :UnknownParameter
|
92
|
-
autoload :InvalidWithOptionForRepresent
|
93
|
-
autoload :IncompatibleOptionValues
|
94
|
-
autoload :MissingGroupType
|
95
|
-
autoload :UnsupportedGroupType
|
96
|
-
autoload :InvalidMessageBody
|
97
|
-
autoload :InvalidAcceptHeader
|
98
|
-
autoload :InvalidVersionHeader
|
99
|
-
autoload :MethodNotAllowed
|
100
|
-
autoload :InvalidResponse
|
101
|
-
autoload :EmptyMessageBody
|
102
|
-
autoload :TooManyMultipartFiles
|
103
|
-
autoload :MissingGroupTypeError, 'grape/exceptions/missing_group_type'
|
104
|
-
autoload :UnsupportedGroupTypeError, 'grape/exceptions/unsupported_group_type'
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
module Extensions
|
109
|
-
extend ::ActiveSupport::Autoload
|
110
|
-
eager_autoload do
|
111
|
-
autoload :Hash
|
112
|
-
end
|
113
|
-
module ActiveSupport
|
114
|
-
extend ::ActiveSupport::Autoload
|
115
|
-
eager_autoload do
|
116
|
-
autoload :HashWithIndifferentAccess
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
module Hashie
|
121
|
-
extend ::ActiveSupport::Autoload
|
122
|
-
eager_autoload do
|
123
|
-
autoload :Mash
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
module Middleware
|
129
|
-
extend ::ActiveSupport::Autoload
|
130
|
-
eager_autoload do
|
131
|
-
autoload :Base
|
132
|
-
autoload :Versioner
|
133
|
-
autoload :Formatter
|
134
|
-
autoload :Error
|
135
|
-
autoload :Globals
|
136
|
-
autoload :Stack
|
137
|
-
autoload :Helpers
|
138
|
-
end
|
139
|
-
|
140
|
-
module Auth
|
141
|
-
extend ::ActiveSupport::Autoload
|
142
|
-
eager_autoload do
|
143
|
-
autoload :Base
|
144
|
-
autoload :DSL
|
145
|
-
autoload :StrategyInfo
|
146
|
-
autoload :Strategies
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
module Versioner
|
151
|
-
extend ::ActiveSupport::Autoload
|
152
|
-
eager_autoload do
|
153
|
-
autoload :Path
|
154
|
-
autoload :Header
|
155
|
-
autoload :Param
|
156
|
-
autoload :AcceptVersionHeader
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end
|
160
|
-
|
161
|
-
module Util
|
162
|
-
extend ::ActiveSupport::Autoload
|
163
|
-
eager_autoload do
|
164
|
-
autoload :InheritableValues
|
165
|
-
autoload :StackableValues
|
166
|
-
autoload :ReverseStackableValues
|
167
|
-
autoload :InheritableSetting
|
168
|
-
autoload :StrictHashConfiguration
|
169
|
-
autoload :Registrable
|
170
|
-
end
|
171
|
-
end
|
172
|
-
|
173
|
-
module ErrorFormatter
|
174
|
-
extend ::ActiveSupport::Autoload
|
175
|
-
eager_autoload do
|
176
|
-
autoload :Base
|
177
|
-
autoload :Json
|
178
|
-
autoload :Txt
|
179
|
-
autoload :Xml
|
180
|
-
end
|
181
|
-
end
|
182
|
-
|
183
|
-
module Formatter
|
184
|
-
extend ::ActiveSupport::Autoload
|
185
|
-
eager_autoload do
|
186
|
-
autoload :Json
|
187
|
-
autoload :SerializableHash
|
188
|
-
autoload :Txt
|
189
|
-
autoload :Xml
|
190
|
-
end
|
191
|
-
end
|
192
|
-
|
193
|
-
module Parser
|
194
|
-
extend ::ActiveSupport::Autoload
|
195
|
-
eager_autoload do
|
196
|
-
autoload :Json
|
197
|
-
autoload :Xml
|
198
|
-
end
|
199
|
-
end
|
200
|
-
|
201
|
-
module DSL
|
202
|
-
extend ::ActiveSupport::Autoload
|
203
|
-
eager_autoload do
|
204
|
-
autoload :API
|
205
|
-
autoload :Callbacks
|
206
|
-
autoload :Settings
|
207
|
-
autoload :Configuration
|
208
|
-
autoload :InsideRoute
|
209
|
-
autoload :Helpers
|
210
|
-
autoload :Middleware
|
211
|
-
autoload :Parameters
|
212
|
-
autoload :RequestResponse
|
213
|
-
autoload :Routing
|
214
|
-
autoload :Validations
|
215
|
-
autoload :Logger
|
216
|
-
autoload :Desc
|
217
|
-
end
|
218
|
-
end
|
219
|
-
|
220
|
-
class API
|
221
|
-
extend ::ActiveSupport::Autoload
|
222
|
-
eager_autoload do
|
223
|
-
autoload :Helpers
|
224
|
-
end
|
225
|
-
end
|
226
|
-
|
227
|
-
module Presenters
|
228
|
-
extend ::ActiveSupport::Autoload
|
229
|
-
eager_autoload do
|
230
|
-
autoload :Presenter
|
231
|
-
end
|
232
|
-
end
|
233
|
-
|
234
|
-
module ServeStream
|
235
|
-
extend ::ActiveSupport::Autoload
|
236
|
-
eager_autoload do
|
237
|
-
autoload :FileBody
|
238
|
-
autoload :SendfileResponse
|
239
|
-
autoload :StreamResponse
|
240
|
-
end
|
241
|
-
end
|
242
|
-
|
243
|
-
module Validations
|
244
|
-
extend ::ActiveSupport::Autoload
|
245
|
-
|
246
|
-
eager_autoload do
|
247
|
-
autoload :AttributesIterator
|
248
|
-
autoload :MultipleAttributesIterator
|
249
|
-
autoload :SingleAttributeIterator
|
250
|
-
autoload :Types
|
251
|
-
autoload :ParamsScope
|
252
|
-
autoload :ValidatorFactory
|
253
|
-
autoload :Base, 'grape/validations/validators/base'
|
254
|
-
end
|
255
|
-
|
256
|
-
module Types
|
257
|
-
extend ::ActiveSupport::Autoload
|
258
|
-
|
259
|
-
eager_autoload do
|
260
|
-
autoload :InvalidValue
|
261
|
-
autoload :DryTypeCoercer
|
262
|
-
autoload :ArrayCoercer
|
263
|
-
autoload :SetCoercer
|
264
|
-
autoload :PrimitiveCoercer
|
265
|
-
autoload :CustomTypeCoercer
|
266
|
-
autoload :CustomTypeCollectionCoercer
|
267
|
-
autoload :MultipleTypeCoercer
|
268
|
-
autoload :VariantCollectionCoercer
|
269
|
-
end
|
270
|
-
end
|
271
|
-
|
272
|
-
module Validators
|
273
|
-
extend ::ActiveSupport::Autoload
|
274
|
-
|
275
|
-
eager_autoload do
|
276
|
-
autoload :Base
|
277
|
-
autoload :MultipleParamsBase
|
278
|
-
autoload :AllOrNoneOfValidator
|
279
|
-
autoload :AllowBlankValidator
|
280
|
-
autoload :AsValidator
|
281
|
-
autoload :AtLeastOneOfValidator
|
282
|
-
autoload :CoerceValidator
|
283
|
-
autoload :DefaultValidator
|
284
|
-
autoload :ExactlyOneOfValidator
|
285
|
-
autoload :ExceptValuesValidator
|
286
|
-
autoload :MutualExclusionValidator
|
287
|
-
autoload :PresenceValidator
|
288
|
-
autoload :RegexpValidator
|
289
|
-
autoload :SameAsValidator
|
290
|
-
autoload :ValuesValidator
|
291
|
-
end
|
292
|
-
end
|
293
|
-
end
|
294
|
-
|
295
|
-
module Types
|
296
|
-
extend ::ActiveSupport::Autoload
|
297
|
-
|
298
|
-
eager_autoload do
|
299
|
-
autoload :InvalidValue
|
300
|
-
end
|
301
|
-
end
|
302
|
-
|
303
76
|
configure do |config|
|
304
|
-
config.param_builder =
|
77
|
+
config.param_builder = :hash_with_indifferent_access
|
78
|
+
config.lint = false
|
305
79
|
config.compile_methods!
|
306
80
|
end
|
307
81
|
end
|
308
82
|
|
309
|
-
require 'grape/content_types'
|
310
|
-
|
311
|
-
require 'grape/util/lazy_value'
|
312
|
-
require 'grape/util/lazy_block'
|
313
|
-
require 'grape/util/endpoint_configuration'
|
314
|
-
require 'grape/version'
|
315
|
-
|
316
83
|
# https://api.rubyonrails.org/classes/ActiveSupport/Deprecation.html
|
317
84
|
# adding Grape.deprecator to Rails App if any
|
318
85
|
require 'grape/railtie' if defined?(Rails::Railtie) && ActiveSupport.gem_version >= Gem::Version.new('7.1')
|
86
|
+
loader.eager_load
|