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,305 +0,0 @@
1
- # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
- # srb rbi gems
3
-
4
- # typed: strong
5
- #
6
- # If you would like to make changes to this file, great! Please create the gem's shim here:
7
- #
8
- # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/dry-logic/all/dry-logic.rbi
9
- #
10
- # dry-logic-1.0.6
11
-
12
- module Dry
13
- end
14
- module Dry::Logic
15
- def self.Rule(*args, **options, &block); end
16
- end
17
- module Dry::Logic::Operators
18
- def &(other); end
19
- def >(other); end
20
- def ^(other); end
21
- def and(other); end
22
- def or(other); end
23
- def then(other); end
24
- def xor(other); end
25
- def |(other); end
26
- end
27
- module Dry::Logic::Operations
28
- end
29
- class Dry::Logic::Operations::Abstract
30
- def curry(*args); end
31
- def id; end
32
- def initialize(*rules, **options); end
33
- def new(rules, **new_options); end
34
- def options; end
35
- def rules; end
36
- def to_ast; end
37
- def with(new_options); end
38
- include Anonymous_Dry_Equalizer_40
39
- include Dry::Core::Constants
40
- include Dry::Equalizer::Methods
41
- include Dry::Logic::Operators
42
- end
43
- module Anonymous_Dry_Equalizer_40
44
- def cmp?(comparator, other); end
45
- def hash; end
46
- def inspect; end
47
- end
48
- class Dry::Logic::Operations::Binary < Dry::Logic::Operations::Abstract
49
- def ast(input = nil); end
50
- def initialize(*rules, **options); end
51
- def left; end
52
- def right; end
53
- def to_s; end
54
- end
55
- class Dry::Logic::Result
56
- def ast(input = nil); end
57
- def failure?; end
58
- def id; end
59
- def initialize(success, id = nil, &block); end
60
- def serializer; end
61
- def success; end
62
- def success?; end
63
- def to_ast; end
64
- def to_s; end
65
- def type; end
66
- def visit(ast); end
67
- def visit_and(node); end
68
- def visit_hint(node); end
69
- def visit_not(node); end
70
- def visit_or(node); end
71
- def visit_predicate(node); end
72
- def visit_xor(node); end
73
- include Dry::Core::Constants
74
- end
75
- class Dry::Logic::Operations::And < Dry::Logic::Operations::Binary
76
- def [](input); end
77
- def call(input); end
78
- def hints; end
79
- def initialize(*arg0, **arg1); end
80
- def operator; end
81
- def type; end
82
- end
83
- class Dry::Logic::Operations::Or < Dry::Logic::Operations::Binary
84
- def [](input); end
85
- def call(input); end
86
- def operator; end
87
- def type; end
88
- end
89
- class Dry::Logic::Operations::Xor < Dry::Logic::Operations::Binary
90
- def [](input); end
91
- def ast(input = nil); end
92
- def call(input); end
93
- def operator; end
94
- def type; end
95
- end
96
- class Dry::Logic::Operations::Implication < Dry::Logic::Operations::Binary
97
- def [](input); end
98
- def call(input); end
99
- def operator; end
100
- def type; end
101
- end
102
- class Dry::Logic::Operations::Unary < Dry::Logic::Operations::Abstract
103
- def ast(input = nil); end
104
- def initialize(*rules, **options); end
105
- def rule; end
106
- def to_s; end
107
- end
108
- class Dry::Logic::Operations::Negation < Dry::Logic::Operations::Unary
109
- def [](input); end
110
- def call(input); end
111
- def type; end
112
- end
113
- class Dry::Logic::Evaluator
114
- def initialize(path); end
115
- def path; end
116
- include Anonymous_Dry_Equalizer_41
117
- include Dry::Equalizer::Methods
118
- end
119
- module Anonymous_Dry_Equalizer_41
120
- def cmp?(comparator, other); end
121
- def hash; end
122
- def inspect; end
123
- end
124
- class Dry::Logic::Evaluator::Set
125
- def [](input); end
126
- def call(input); end
127
- def evaluators; end
128
- def initialize(evaluators); end
129
- def self.new(paths); end
130
- include Anonymous_Dry_Equalizer_42
131
- include Dry::Equalizer::Methods
132
- end
133
- module Anonymous_Dry_Equalizer_42
134
- def cmp?(comparator, other); end
135
- def hash; end
136
- def inspect; end
137
- end
138
- class Dry::Logic::Evaluator::Key < Dry::Logic::Evaluator
139
- def [](input); end
140
- def call(input); end
141
- end
142
- class Dry::Logic::Evaluator::Attr < Dry::Logic::Evaluator
143
- def [](input); end
144
- def call(input); end
145
- end
146
- class Dry::Logic::Operations::Key < Dry::Logic::Operations::Unary
147
- def [](hash); end
148
- def ast(input = nil); end
149
- def call(hash); end
150
- def evaluator; end
151
- def initialize(*rules, **options); end
152
- def path; end
153
- def self.evaluator(name); end
154
- def self.new(rules, **options); end
155
- def to_s; end
156
- def type; end
157
- end
158
- class Dry::Logic::Operations::Attr < Dry::Logic::Operations::Key
159
- def self.evaluator(name); end
160
- def type; end
161
- end
162
- class Dry::Logic::Operations::Each < Dry::Logic::Operations::Unary
163
- def [](arr); end
164
- def call(input); end
165
- def type; end
166
- end
167
- class Dry::Logic::Operations::Set < Dry::Logic::Operations::Abstract
168
- def [](input); end
169
- def ast(input = nil); end
170
- def call(input); end
171
- def to_s; end
172
- def type; end
173
- end
174
- class Dry::Logic::Operations::Check < Dry::Logic::Operations::Unary
175
- def [](input); end
176
- def ast(input = nil); end
177
- def call(input); end
178
- def evaluator; end
179
- def initialize(*rules, **options); end
180
- def self.new(rule, **options); end
181
- def type; end
182
- end
183
- class Dry::Logic::Rule
184
- def args; end
185
- def args_with_names(*input); end
186
- def arity; end
187
- def ast(input = nil); end
188
- def bind(object); end
189
- def curry(*new_args); end
190
- def eval_args(object); end
191
- def id; end
192
- def initialize(predicate, options = nil); end
193
- def options; end
194
- def parameters; end
195
- def predicate; end
196
- def self.build(predicate, args: nil, arity: nil, **options); end
197
- def self.interfaces; end
198
- def self.specialize(arity, curried, base = nil); end
199
- def type; end
200
- def with(new_opts); end
201
- include Anonymous_Dry_Equalizer_43
202
- include Dry::Core::Constants
203
- include Dry::Equalizer::Methods
204
- include Dry::Logic::Operators
205
- end
206
- class Dry::Logic::Rule::Interface < Module
207
- def arity; end
208
- def constant?; end
209
- def curried; end
210
- def curried?; end
211
- def curried_args; end
212
- def define_constant_application; end
213
- def define_constructor; end
214
- def define_fixed_application; end
215
- def define_splat_application; end
216
- def initialize(arity, curried); end
217
- def name; end
218
- def unapplied; end
219
- def unapplied_args; end
220
- def variable_arity?; end
221
- end
222
- module Anonymous_Dry_Equalizer_43
223
- def cmp?(comparator, other); end
224
- def hash; end
225
- def inspect; end
226
- end
227
- class Dry::Logic::Rule::Predicate < Dry::Logic::Rule
228
- def ast(input = nil); end
229
- def name; end
230
- def self.specialize(arity, curried, base = nil); end
231
- def to_ast(input = nil); end
232
- def to_s; end
233
- def type; end
234
- end
235
- class Dry::Logic::RuleCompiler
236
- def call(ast); end
237
- def initialize(predicates); end
238
- def predicates; end
239
- def visit(node); end
240
- def visit_and(node); end
241
- def visit_attr(node); end
242
- def visit_check(node); end
243
- def visit_each(node); end
244
- def visit_implication(node); end
245
- def visit_key(node); end
246
- def visit_not(node); end
247
- def visit_or(node); end
248
- def visit_predicate(node); end
249
- def visit_set(node); end
250
- def visit_xor(node); end
251
- include Dry::Core::Constants
252
- end
253
- module Dry::Logic::Predicates
254
- def self.included(other); end
255
- extend Dry::Logic::Predicates::Methods
256
- end
257
- module Dry::Logic::Predicates::Methods
258
- def [](name); end
259
- def array?(input); end
260
- def attr?(name, input); end
261
- def bool?(input); end
262
- def bytesize?(size, input); end
263
- def case?(pattern, input); end
264
- def date?(input); end
265
- def date_time?(input); end
266
- def decimal?(input); end
267
- def empty?(input); end
268
- def eql?(left, right); end
269
- def even?(input); end
270
- def excluded_from?(list, input); end
271
- def excludes?(value, input); end
272
- def exclusion?(list, input); end
273
- def false?(value); end
274
- def filled?(input); end
275
- def float?(input); end
276
- def format?(regex, input); end
277
- def gt?(num, input); end
278
- def gteq?(num, input); end
279
- def hash?(input); end
280
- def included_in?(list, input); end
281
- def includes?(value, input); end
282
- def inclusion?(list, input); end
283
- def int?(input); end
284
- def is?(left, right); end
285
- def key?(name, input); end
286
- def lt?(num, input); end
287
- def lteq?(num, input); end
288
- def max_bytesize?(num, input); end
289
- def max_size?(num, input); end
290
- def min_bytesize?(num, input); end
291
- def min_size?(num, input); end
292
- def nil?(input); end
293
- def none?(input); end
294
- def not_eql?(left, right); end
295
- def number?(input); end
296
- def odd?(input); end
297
- def predicate(name, &block); end
298
- def respond_to?(method, input); end
299
- def size?(size, input); end
300
- def str?(input); end
301
- def time?(input); end
302
- def true?(value); end
303
- def type?(type, input); end
304
- def uuid_v4?(input); end
305
- end
@@ -1,34 +0,0 @@
1
- # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
- # srb rbi gems
3
-
4
- # typed: strong
5
- #
6
- # If you would like to make changes to this file, great! Please create the gem's shim here:
7
- #
8
- # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/dry-matcher/all/dry-matcher.rbi
9
- #
10
- # dry-matcher-0.8.3
11
-
12
- module Dry
13
- end
14
- class Dry::Matcher
15
- def call(result, &block); end
16
- def cases; end
17
- def for(*methods); end
18
- def initialize(cases = nil); end
19
- def self.for(*match_methods, with:); end
20
- include Dry::Core::Constants
21
- end
22
- class Dry::Matcher::Case
23
- def call(value, patterns = nil, &block); end
24
- def initialize(match: nil, resolve: nil, &block); end
25
- end
26
- class Dry::Matcher::NonExhaustiveMatchError < StandardError
27
- end
28
- class Dry::Matcher::Evaluator < BasicObject
29
- def call; end
30
- def ensure_exhaustive_match; end
31
- def initialize(result, cases); end
32
- def method_missing(name, *args, &block); end
33
- def respond_to_missing?(name, _include_private = nil); end
34
- end