clean-architecture 5.0.2 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +15 -19
  3. data/.gitignore +4 -0
  4. data/CHANGELOG.md +4 -0
  5. data/Gemfile +1 -0
  6. data/README.md +1 -585
  7. data/bin/tapioca +29 -0
  8. data/clean-architecture.gemspec +4 -4
  9. data/lib/clean-architecture.rb +4 -1
  10. data/lib/clean_architecture/adapters/all.rb +1 -1
  11. data/lib/clean_architecture/adapters/attribute_hash_base.rb +47 -20
  12. data/lib/clean_architecture/all.rb +1 -4
  13. data/lib/clean_architecture/builders/abstract_active_record_entity_builder.rb +43 -13
  14. data/lib/clean_architecture/builders/all.rb +1 -1
  15. data/lib/clean_architecture/checks/all.rb +1 -1
  16. data/lib/clean_architecture/checks/authorization.rb +11 -9
  17. data/lib/clean_architecture/entities/all.rb +1 -3
  18. data/lib/clean_architecture/entities/failure_details.rb +27 -17
  19. data/lib/clean_architecture/matchers/all.rb +1 -1
  20. data/lib/clean_architecture/matchers/use_case_result.rb +9 -3
  21. data/lib/clean_architecture/queries/all.rb +1 -1
  22. data/lib/clean_architecture/queries/http_failure_code.rb +8 -20
  23. data/lib/clean_architecture/queries/http_success_code.rb +14 -7
  24. data/lib/clean_architecture/serializers/all.rb +1 -1
  25. data/lib/clean_architecture/serializers/html_response_from_result.rb +7 -1
  26. data/lib/clean_architecture/serializers/json_response_from_result.rb +4 -4
  27. data/lib/clean_architecture/version.rb +1 -1
  28. data/nix/sources.json +14 -0
  29. data/nix/sources.nix +174 -0
  30. data/run_ci.sh +7 -0
  31. data/shell.nix +17 -12
  32. data/sorbet/config +4 -0
  33. data/sorbet/{rbi/gems → dry-monads-sorbet}/dry-monads.rbi +176 -94
  34. data/sorbet/rbi/gems/activemodel@6.1.4.1.rbi +1292 -0
  35. data/sorbet/rbi/gems/activerecord@6.1.4.1.rbi +8092 -0
  36. data/sorbet/rbi/gems/activesupport@6.1.4.1.rbi +3531 -0
  37. data/sorbet/rbi/gems/{ast.rbi → ast@2.4.2.rbi} +28 -22
  38. data/sorbet/rbi/gems/byebug@11.1.3.rbi +1568 -0
  39. data/sorbet/rbi/gems/coderay@1.1.3.rbi +1005 -0
  40. data/sorbet/rbi/gems/concurrent-ruby@1.1.9.rbi +915 -0
  41. data/sorbet/rbi/gems/diff-lcs@1.4.4.rbi +8 -0
  42. data/sorbet/rbi/gems/docile@1.4.0.rbi +54 -0
  43. data/sorbet/rbi/gems/dry-core@0.7.1.rbi +92 -0
  44. data/sorbet/rbi/gems/dry-equalizer@0.3.0.rbi +28 -0
  45. data/sorbet/rbi/gems/dry-matcher@0.9.0.rbi +56 -0
  46. data/sorbet/rbi/gems/dry-monads-sorbet@1.1.7.rbi +41 -0
  47. data/sorbet/rbi/gems/dry-monads@1.4.0.rbi +697 -0
  48. data/sorbet/rbi/gems/em-websocket@0.5.2.rbi +8 -0
  49. data/sorbet/rbi/gems/eventmachine@1.2.7.rbi +45 -0
  50. data/sorbet/rbi/gems/ffi@1.15.4.rbi +8 -0
  51. data/sorbet/rbi/gems/formatador@0.3.0.rbi +8 -0
  52. data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +31 -0
  53. data/sorbet/rbi/gems/guard-livereload@2.5.2.rbi +8 -0
  54. data/sorbet/rbi/gems/guard-rspec@4.7.3.rbi +211 -0
  55. data/sorbet/rbi/gems/guard@2.18.0.rbi +8 -0
  56. data/sorbet/rbi/gems/http_parser.rb@0.6.0.rbi +8 -0
  57. data/sorbet/rbi/gems/i18n@1.8.10.rbi +8 -0
  58. data/sorbet/rbi/gems/listen@3.7.0.rbi +8 -0
  59. data/sorbet/rbi/gems/lumberjack@1.2.8.rbi +8 -0
  60. data/sorbet/rbi/gems/method_source@1.0.0.rbi +72 -0
  61. data/sorbet/rbi/gems/minitest@5.14.4.rbi +344 -0
  62. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +8 -0
  63. data/sorbet/rbi/gems/nenv@0.3.0.rbi +8 -0
  64. data/sorbet/rbi/gems/notiffany@0.1.3.rbi +8 -0
  65. data/sorbet/rbi/gems/parallel@1.21.0.rbi +113 -0
  66. data/sorbet/rbi/gems/{parser.rbi → parser@3.0.2.0.rbi} +966 -699
  67. data/sorbet/rbi/gems/pry-byebug@3.9.0.rbi +461 -0
  68. data/sorbet/rbi/gems/{pry.rbi → pry@0.13.1.rbi} +2191 -1605
  69. data/sorbet/rbi/gems/{rainbow.rbi → rainbow@3.0.0.rbi} +90 -55
  70. data/sorbet/rbi/gems/{rake.rbi → rake@13.0.6.rbi} +578 -427
  71. data/sorbet/rbi/gems/rb-fsevent@0.11.0.rbi +8 -0
  72. data/sorbet/rbi/gems/rb-inotify@0.10.1.rbi +8 -0
  73. data/sorbet/rbi/gems/rb-readline@0.5.5.rbi +884 -0
  74. data/sorbet/rbi/gems/rbi@0.0.6.rbi +1405 -0
  75. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +1120 -0
  76. data/sorbet/rbi/gems/{rexml.rbi → rexml@3.2.5.rbi} +562 -479
  77. data/sorbet/rbi/gems/{rspec-core.rbi → rspec-core@3.10.1.rbi} +2317 -1533
  78. data/sorbet/rbi/gems/rspec-expectations@3.10.1.rbi +1574 -0
  79. data/sorbet/rbi/gems/rspec-mocks@3.10.2.rbi +1462 -0
  80. data/sorbet/rbi/gems/rspec-support@3.10.2.rbi +509 -0
  81. data/sorbet/rbi/gems/rspec@3.10.0.rbi +38 -0
  82. data/sorbet/rbi/gems/rubocop-ast@1.12.0.rbi +1938 -0
  83. data/sorbet/rbi/gems/rubocop-rspec@2.5.0.rbi +1786 -0
  84. data/sorbet/rbi/gems/rubocop@1.22.1.rbi +13252 -0
  85. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +405 -0
  86. data/sorbet/rbi/gems/shellany@0.0.1.rbi +8 -0
  87. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +89 -0
  88. data/sorbet/rbi/gems/simplecov@0.21.2.rbi +577 -0
  89. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.3.rbi +8 -0
  90. data/sorbet/rbi/gems/sorbet-struct-comparable@1.1.0.rbi +17 -0
  91. data/sorbet/rbi/gems/spoom@1.1.5.rbi +1241 -0
  92. data/sorbet/rbi/gems/stackprof@0.2.17.rbi +98 -0
  93. data/sorbet/rbi/gems/tapioca@0.5.2.rbi +949 -0
  94. data/sorbet/rbi/gems/thor@1.1.0.rbi +839 -0
  95. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +8 -0
  96. data/sorbet/rbi/gems/unicode-display_width@2.1.0.rbi +26 -0
  97. data/sorbet/rbi/gems/unparser@0.6.0.rbi +8 -0
  98. data/sorbet/rbi/gems/zeitwerk@2.4.2.rbi +8 -0
  99. data/sorbet/tapioca/require.rb +9 -0
  100. metadata +88 -91
  101. data/.ruby-version +0 -1
  102. data/lib/clean_architecture/entities/targeted_parameters.rb +0 -24
  103. data/lib/clean_architecture/entities/untargeted_parameters.rb +0 -21
  104. data/lib/clean_architecture/interfaces/all.rb +0 -12
  105. data/lib/clean_architecture/interfaces/authorization_parameters.rb +0 -19
  106. data/lib/clean_architecture/interfaces/base_parameters.rb +0 -24
  107. data/lib/clean_architecture/interfaces/jsonable.rb +0 -16
  108. data/lib/clean_architecture/interfaces/targeted_parameters.rb +0 -19
  109. data/lib/clean_architecture/interfaces/use_case.rb +0 -20
  110. data/lib/clean_architecture/interfaces/use_case_actor.rb +0 -20
  111. data/lib/clean_architecture/interfaces/use_case_target.rb +0 -24
  112. data/lib/clean_architecture/types.rb +0 -8
  113. data/lib/clean_architecture/use_cases/abstract_use_case.rb +0 -63
  114. data/lib/clean_architecture/use_cases/all.rb +0 -10
  115. data/lib/clean_architecture/use_cases/contract.rb +0 -9
  116. data/lib/clean_architecture/use_cases/errors.rb +0 -58
  117. data/lib/clean_architecture/use_cases/form.rb +0 -116
  118. data/lib/clean_architecture/use_cases/parameters.rb +0 -43
  119. data/sorbet/rbi/gems/activemodel.rbi +0 -75
  120. data/sorbet/rbi/gems/activesupport.rbi +0 -440
  121. data/sorbet/rbi/gems/byebug.rbi +0 -1040
  122. data/sorbet/rbi/gems/coderay.rbi +0 -92
  123. data/sorbet/rbi/gems/concurrent-ruby.rbi +0 -1586
  124. data/sorbet/rbi/gems/docile.rbi +0 -32
  125. data/sorbet/rbi/gems/dry-configurable.rbi +0 -139
  126. data/sorbet/rbi/gems/dry-container.rbi +0 -89
  127. data/sorbet/rbi/gems/dry-core.rbi +0 -80
  128. data/sorbet/rbi/gems/dry-equalizer.rbi +0 -26
  129. data/sorbet/rbi/gems/dry-inflector.rbi +0 -73
  130. data/sorbet/rbi/gems/dry-initializer.rbi +0 -209
  131. data/sorbet/rbi/gems/dry-logic.rbi +0 -305
  132. data/sorbet/rbi/gems/dry-matcher.rbi +0 -34
  133. data/sorbet/rbi/gems/dry-schema.rbi +0 -786
  134. data/sorbet/rbi/gems/dry-struct.rbi +0 -137
  135. data/sorbet/rbi/gems/dry-types.rbi +0 -709
  136. data/sorbet/rbi/gems/dry-validation.rbi +0 -288
  137. data/sorbet/rbi/gems/duckface-interfaces.rbi +0 -94
  138. data/sorbet/rbi/gems/i18n.rbi +0 -133
  139. data/sorbet/rbi/gems/jaro_winkler.rbi +0 -15
  140. data/sorbet/rbi/gems/method_source.rbi +0 -64
  141. data/sorbet/rbi/gems/parallel.rbi +0 -82
  142. data/sorbet/rbi/gems/pry-byebug.rbi +0 -155
  143. data/sorbet/rbi/gems/rb-readline.rbi +0 -767
  144. data/sorbet/rbi/gems/rspec-expectations.rbi +0 -398
  145. data/sorbet/rbi/gems/rspec-mocks.rbi +0 -816
  146. data/sorbet/rbi/gems/rspec-support.rbi +0 -271
  147. data/sorbet/rbi/gems/rspec.rbi +0 -15
  148. data/sorbet/rbi/gems/rubocop-rspec.rbi +0 -922
  149. data/sorbet/rbi/gems/rubocop.rbi +0 -7319
  150. data/sorbet/rbi/gems/ruby-progressbar.rbi +0 -305
  151. data/sorbet/rbi/gems/simplecov-html.rbi +0 -35
  152. data/sorbet/rbi/gems/simplecov.rbi +0 -361
  153. data/sorbet/rbi/gems/stackprof.rbi +0 -52
  154. data/sorbet/rbi/gems/unicode-display_width.rbi +0 -17
  155. data/sorbet/rbi/hidden-definitions/errors.txt +0 -8580
  156. data/sorbet/rbi/hidden-definitions/hidden.rbi +0 -17036
  157. data/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +0 -452
  158. data/sorbet/rbi/sorbet-typed/lib/activesupport/>=6.0.0.rc1/activesupport.rbi +0 -23
  159. data/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +0 -979
  160. data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +0 -8684
  161. data/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +0 -108
  162. data/sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi +0 -276
  163. data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +0 -4222
  164. data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +0 -111
  165. data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +0 -543
  166. data/sorbet/rbi/todo.rbi +0 -10
@@ -1,452 +0,0 @@
1
- # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
- # srb rbi sorbet-typed
3
- #
4
- # If you would like to make changes to this file, great! Please upstream any changes you make here:
5
- #
6
- # https://github.com/sorbet/sorbet-typed/edit/master/lib/activemodel/all/activemodel.rbi
7
- #
8
- # typed: strong
9
-
10
- module ActiveModel::Dirty
11
- extend T::Sig
12
- sig { params(attr: Symbol, from: T.untyped, to: T.untyped).returns(T::Boolean) }
13
- def attribute_changed?(attr, from: nil, to: nil); end
14
-
15
- sig { params(attr_name: Symbol).returns(T::Boolean) }
16
- def attribute_changed_in_place?(attr_name); end
17
-
18
- sig { params(attr_name: Symbol).returns(T::Boolean) }
19
- def attribute_previously_changed?(attr_name); end
20
-
21
- sig { returns(T::Boolean) }
22
- def changed?; end
23
- end
24
-
25
- module ActiveModel::Validations
26
- module ClassMethods
27
- # https://github.com/rails/rails/blob/v5.2.3/activemodel/lib/active_model/validations.rb#L136-L154
28
- sig do
29
- params(
30
- names: T.any(Symbol, String),
31
- if: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
32
- on: T.any(Symbol, String, T::Array[T.any(Symbol, String)]),
33
- prepend: T::Boolean,
34
- unless: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
35
- ).void
36
- end
37
- def validate(
38
- *names,
39
- if: nil,
40
- on: nil,
41
- prepend: false,
42
- unless: nil
43
- ); end
44
-
45
- # https://github.com/rails/rails/blob/v5.2.3/activemodel/lib/active_model/validations/validates.rb#L75-L105
46
- sig do
47
- params(
48
- names: T.any(Symbol, String), # a splat of at least one attribute name
49
- absence: T.any(T::Boolean, T::Hash[T.untyped, T.untyped]),
50
- acceptance: T.any(T::Boolean, T::Hash[T.untyped, T.untyped]),
51
- allow_blank: T::Boolean,
52
- allow_nil: T::Boolean,
53
- confirmation: T.any(T::Boolean, T::Hash[T.untyped, T.untyped]),
54
- # `exclusion` and `inclusion` are tricky to type without better support
55
- # for overloading and shapes. Value can be anything that responds to
56
- # `include?` (e.g. (1..3)), or a hash having an `in` or `within` key,
57
- # like { in: [1, 2, 3], ... }
58
- exclusion: T::Enumerable[T.untyped],
59
- # `format` hash must additionally contain either :with or :without keys.
60
- # Alternatively, it can be a Regexp.
61
- format: T.any(T::Hash[T.untyped, T.untyped], Regexp),
62
- if: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
63
- # `exclusion` and `inclusion` are tricky to type without better support
64
- # for overloading and shapes. Value can be anything that responds to
65
- # `include?` (e.g. (1..3)), or a hash having an `in` or `within` key,
66
- # like { in: [1, 2, 3], ... }
67
- inclusion: T::Enumerable[T.untyped],
68
- # if Hash, must contain :in, :within, :maximum, :minimum, or :is keys
69
- length: T.any(T::Range[T.untyped], T::Hash[T.untyped, T.untyped]),
70
- numericality: T.any(T::Boolean, T::Hash[T.untyped, T.untyped]),
71
- on: T.any(Symbol, String, T::Array[T.any(Symbol, String)]),
72
- presence: T::Boolean,
73
- size: T.any(T::Boolean, T::Hash[T.untyped, T.untyped]),
74
- strict: T::Boolean,
75
- uniqueness: T.any(T::Boolean, T::Hash[T.untyped, T.untyped]),
76
- unless: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
77
- kwargs: T.untyped
78
- ).void
79
- end
80
- def validates(
81
- *names,
82
- absence: false,
83
- acceptance: {},
84
- allow_blank: false,
85
- allow_nil: false,
86
- confirmation: false,
87
- exclusion: [],
88
- format: {},
89
- if: nil,
90
- inclusion: [],
91
- length: {},
92
- numericality: false,
93
- on: :_,
94
- presence: false,
95
- size: false,
96
- strict: false,
97
- uniqueness: false,
98
- unless: :_,
99
- **kwargs
100
- )
101
- end
102
- end
103
-
104
- mixes_in_class_methods(ClassMethods)
105
- end
106
-
107
- class ActiveModel::Type::Value
108
- extend T::Sig
109
-
110
- sig { params(precision: T.untyped, limit: T.untyped, scale: T.untyped).void }
111
- def initialize(precision: nil, limit: nil, scale: nil); end
112
-
113
- sig { params(value: T.untyped).returns(T.untyped) }
114
- def cast(value); end
115
- end
116
-
117
- class ActiveModel::Type::Boolean < ActiveModel::Type::Value
118
- sig { params(arg0: T.untyped).returns(T.nilable(T::Boolean))}
119
- def cast(arg0); end
120
- end
121
-
122
- class ActiveModel::Type::ImmutableString < ActiveModel::Type::Value
123
- sig { params(arg0: T.untyped).returns(T.nilable(String))}
124
- def cast(arg0); end
125
- end
126
-
127
- class ActiveModel::Type::String < ActiveModel::Type::ImmutableString
128
- sig { params(arg0: T.untyped).returns(T.nilable(String))}
129
- def cast(arg0); end
130
- end
131
-
132
- module ActiveModel::Validations::HelperMethods
133
- # A type alias for the in/within parameters on the
134
- # validates_(inclusion/exclusion)_of methods.
135
- InWithinType = T.type_alias do
136
- T.nilable(
137
- T.any(
138
- Symbol,
139
- String,
140
- T::Array[T.any(String, Symbol)],
141
- T::Range[Integer],
142
- T::Array[T::Boolean],
143
- T.proc.params(arg0: T.untyped).returns(T::Boolean)
144
- )
145
- )
146
- end
147
-
148
- module ClassMethods
149
- sig do
150
- params(
151
- attr_names: T.any(String, Symbol),
152
- message: String,
153
- if: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
154
- unless: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
155
- on: T.any(Symbol, String, T::Array[T.any(Symbol, String)]),
156
- allow_nil: T::Boolean,
157
- allow_blank: T::Boolean,
158
- strict: T::Boolean
159
- ).void
160
- end
161
- def validates_absence_of(
162
- *attr_names,
163
- message: 'must be blank',
164
- if: nil,
165
- unless: :_,
166
- on: :_,
167
- allow_nil: false,
168
- allow_blank: false,
169
- strict: false
170
- ); end
171
-
172
- sig do
173
- params(
174
- attr_names: T.any(String, Symbol),
175
- message: String,
176
- accept: T.untyped,
177
- if: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
178
- unless: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
179
- on: T.any(Symbol, String, T::Array[T.any(Symbol, String)]),
180
- allow_nil: T::Boolean,
181
- allow_blank: T::Boolean,
182
- strict: T::Boolean
183
- ).void
184
- end
185
- def validates_acceptance_of(
186
- *attr_names,
187
- message: 'must be accepted',
188
- accept: ['1', true],
189
- if: nil,
190
- unless: :_,
191
- on: :_,
192
- allow_nil: false,
193
- allow_blank: false,
194
- strict: false
195
- ); end
196
-
197
- sig do
198
- params(
199
- attr_names: T.any(String, Symbol),
200
- message: String,
201
- case_sensitive: T::Boolean,
202
- if: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
203
- unless: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
204
- on: T.any(Symbol, String, T::Array[T.any(Symbol, String)]),
205
- allow_nil: T::Boolean,
206
- allow_blank: T::Boolean,
207
- strict: T::Boolean
208
- ).void
209
- end
210
- def validates_confirmation_of(
211
- *attr_names,
212
- message: "doesn't match %{translated_attribute_name}",
213
- case_sensitive: true,
214
- if: nil,
215
- unless: :_,
216
- on: :_,
217
- allow_nil: false,
218
- allow_blank: false,
219
- strict: false
220
- ); end
221
-
222
- sig do
223
- params(
224
- attr_names: T.any(String, Symbol),
225
- message: String,
226
- in: InWithinType,
227
- within: InWithinType,
228
- if: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
229
- unless: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
230
- on: T.any(Symbol, String, T::Array[T.any(Symbol, String)]),
231
- allow_nil: T::Boolean,
232
- allow_blank: T::Boolean,
233
- strict: T::Boolean
234
- ).void
235
- end
236
- def validates_exclusion_of(
237
- *attr_names,
238
- message: 'is reserved',
239
- in: nil,
240
- within: nil,
241
- if: nil,
242
- unless: :_,
243
- on: :_,
244
- allow_nil: false,
245
- allow_blank: false,
246
- strict: false
247
- ); end
248
-
249
- sig do
250
- params(
251
- attr_names: T.any(String, Symbol),
252
- message: String,
253
- with: T.untyped,
254
- without: T.untyped,
255
- multiline: T.untyped,
256
- if: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
257
- unless: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
258
- on: T.any(Symbol, String, T::Array[T.any(Symbol, String)]),
259
- allow_nil: T::Boolean,
260
- allow_blank: T::Boolean,
261
- strict: T::Boolean
262
- ).void
263
- end
264
- def validates_format_of(
265
- *attr_names,
266
- message: 'is invalid',
267
- with: nil,
268
- without: nil,
269
- multiline: nil,
270
- if: nil,
271
- unless: :_,
272
- on: :_,
273
- allow_nil: false,
274
- allow_blank: false,
275
- strict: false
276
- ); end
277
-
278
- sig do
279
- params(
280
- attr_names: T.any(String, Symbol),
281
- message: String,
282
- in: InWithinType,
283
- within: InWithinType,
284
- if: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
285
- unless: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
286
- on: T.any(Symbol, String, T::Array[T.any(Symbol, String)]),
287
- allow_nil: T::Boolean,
288
- allow_blank: T::Boolean,
289
- strict: T::Boolean
290
- ).void
291
- end
292
- def validates_inclusion_of(
293
- *attr_names,
294
- message: 'is not included in the list',
295
- in: nil,
296
- within: nil,
297
- if: nil,
298
- unless: :_,
299
- on: :_,
300
- allow_nil: false,
301
- allow_blank: false,
302
- strict: false
303
- ); end
304
-
305
- sig do
306
- params(
307
- attr_names: T.any(String, Symbol),
308
- message: T.nilable(String),
309
- minimum: T.nilable(Integer),
310
- maximum: T.nilable(Integer),
311
- is: T.nilable(Integer),
312
- within: T.nilable(T::Range[Integer]),
313
- in: T.nilable(T::Range[Integer]),
314
- too_long: String,
315
- too_short: String,
316
- wrong_length: String,
317
- if: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
318
- unless: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
319
- on: T.any(Symbol, String, T::Array[T.any(Symbol, String)]),
320
- allow_nil: T::Boolean,
321
- allow_blank: T::Boolean,
322
- strict: T::Boolean
323
- ).void
324
- end
325
- def validates_length_of(
326
- *attr_names,
327
- message: nil,
328
- minimum: nil,
329
- maximum: nil,
330
- is: nil,
331
- within: nil,
332
- in: nil,
333
- too_long: 'is too long (maximum is %{count} characters)',
334
- too_short: 'is too short (minimum is %{count} characters)',
335
- wrong_length: 'is the wrong length (should be %{count} characters)',
336
- if: nil,
337
- unless: :_,
338
- on: :_,
339
- allow_nil: false,
340
- allow_blank: false,
341
- strict: false
342
- ); end
343
-
344
- # validates_size_of is an alias of validates_length_of
345
- sig do
346
- params(
347
- attr_names: T.any(String, Symbol),
348
- message: T.nilable(String),
349
- minimum: T.nilable(Integer),
350
- maximum: T.nilable(Integer),
351
- is: T.nilable(Integer),
352
- within: T.nilable(T::Range[Integer]),
353
- in: T.nilable(T::Range[Integer]),
354
- too_long: String,
355
- too_short: String,
356
- wrong_length: String,
357
- if: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
358
- unless: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
359
- on: T.any(Symbol, String, T::Array[T.any(Symbol, String)]),
360
- allow_nil: T::Boolean,
361
- allow_blank: T::Boolean,
362
- strict: T::Boolean
363
- ).void
364
- end
365
- def validates_size_of(
366
- *attr_names,
367
- message: nil,
368
- minimum: nil,
369
- maximum: nil,
370
- is: nil,
371
- within: nil,
372
- in: nil,
373
- too_long: 'is too long (maximum is %{count} characters)',
374
- too_short: 'is too short (minimum is %{count} characters)',
375
- wrong_length: 'is the wrong length (should be %{count} characters)',
376
- if: nil,
377
- unless: :_,
378
- on: :_,
379
- allow_nil: false,
380
- allow_blank: false,
381
- strict: false
382
- ); end
383
-
384
- # Create a type alias so we don't have to repeat this long type signature 6 times.
385
- NumberComparatorType = T.type_alias {T.nilable(T.any(Integer, Float, T.proc.params(arg0: T.untyped).returns(T::Boolean), Symbol))}
386
- sig do
387
- params(
388
- attr_names: T.any(String, Symbol),
389
- message: String,
390
- only_integer: T::Boolean,
391
- greater_than: NumberComparatorType,
392
- greater_than_or_equal_to: NumberComparatorType,
393
- equal_to: NumberComparatorType,
394
- less_than: NumberComparatorType,
395
- less_than_or_equal_to: NumberComparatorType,
396
- other_than: NumberComparatorType,
397
- odd: T::Boolean,
398
- even: T::Boolean,
399
- if: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
400
- unless: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
401
- on: T.any(Symbol, String, T::Array[T.any(Symbol, String)]),
402
- allow_nil: T::Boolean,
403
- allow_blank: T::Boolean,
404
- strict: T::Boolean
405
- ).void
406
- end
407
- def validates_numericality_of(
408
- *attr_names,
409
- message: 'is not a number',
410
- only_integer: false,
411
- greater_than: nil,
412
- greater_than_or_equal_to: nil,
413
- equal_to: nil,
414
- less_than: nil,
415
- less_than_or_equal_to: nil,
416
- other_than: nil,
417
- odd: false,
418
- even: false,
419
- if: nil,
420
- unless: :_,
421
- on: :_,
422
- allow_nil: false,
423
- allow_blank: false,
424
- strict: false
425
- ); end
426
-
427
- sig do
428
- params(
429
- attr_names: T.any(String, Symbol),
430
- message: String,
431
- if: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
432
- unless: T.any(Symbol, String, T.proc.params(arg0: T.untyped).returns(T::Boolean)),
433
- on: T.any(Symbol, String, T::Array[T.any(Symbol, String)]),
434
- allow_nil: T::Boolean,
435
- allow_blank: T::Boolean,
436
- strict: T::Boolean
437
- ).void
438
- end
439
- def validates_presence_of(
440
- *attr_names,
441
- message: "can't be blank",
442
- if: nil,
443
- unless: :_,
444
- on: :_,
445
- allow_nil: false,
446
- allow_blank: false,
447
- strict: false
448
- ); end
449
- end
450
-
451
- mixes_in_class_methods(ClassMethods)
452
- end
@@ -1,23 +0,0 @@
1
- # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
- # srb rbi sorbet-typed
3
- #
4
- # If you would like to make changes to this file, great! Please upstream any changes you make here:
5
- #
6
- # https://github.com/sorbet/sorbet-typed/edit/master/lib/activesupport/>=6.0.0.rc1/activesupport.rbi
7
- #
8
- # typed: strong
9
-
10
- class Array
11
- sig { params(elements: T.untyped).returns(T::Array[T.untyped]) }
12
- def excluding(*elements); end
13
-
14
- sig do
15
- params(
16
- blk: T.nilable(T.proc.params(arg0: Elem).returns(T::Boolean))
17
- ).returns(T.any(T::Array[Elem], T::Enumerable[Elem]))
18
- end
19
- def extract!(&blk); end
20
-
21
- sig { params(elements: T.untyped).returns(T::Array[T.untyped]) }
22
- def including(*elements); end
23
- end