muina 0.2.8 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (161) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +25 -0
  3. data/README.md +0 -35
  4. data/lib/muina/maybe/none.rb +61 -0
  5. data/lib/muina/maybe/some.rb +62 -0
  6. data/lib/muina/maybe.rb +13 -0
  7. data/lib/muina/result/failure.rb +7 -18
  8. data/lib/muina/result/success.rb +7 -18
  9. data/lib/muina/result.rb +6 -8
  10. data/lib/muina/version.rb +1 -2
  11. data/lib/muina.rb +0 -32
  12. metadata +24 -225
  13. data/.github/workflows/main.yml +0 -16
  14. data/.gitignore +0 -5
  15. data/.mutant.yml +0 -38
  16. data/.rspec +0 -4
  17. data/.rubocop.yml +0 -181
  18. data/.ruby-version +0 -1
  19. data/.simplecov +0 -14
  20. data/CHANGELOG.md +0 -38
  21. data/Gemfile +0 -34
  22. data/Gemfile.lock +0 -265
  23. data/Guardfile +0 -24
  24. data/Rakefile +0 -13
  25. data/SECURITY.md +0 -14
  26. data/bin/bundle +0 -114
  27. data/bin/console +0 -15
  28. data/bin/flay +0 -29
  29. data/bin/flog +0 -29
  30. data/bin/guard +0 -29
  31. data/bin/irb +0 -29
  32. data/bin/lefthook +0 -29
  33. data/bin/mutant +0 -29
  34. data/bin/parlour +0 -29
  35. data/bin/rake +0 -29
  36. data/bin/rspec +0 -29
  37. data/bin/rubocop +0 -29
  38. data/bin/setup +0 -8
  39. data/bin/srb +0 -29
  40. data/bin/srb-rbi +0 -29
  41. data/bin/tapioca +0 -29
  42. data/exe/muina +0 -11
  43. data/lefthook.yml +0 -39
  44. data/lib/muina/action/params_factory.rb +0 -17
  45. data/lib/muina/action/step/command.rb +0 -33
  46. data/lib/muina/action/step/failure.rb +0 -18
  47. data/lib/muina/action/step/query.rb +0 -35
  48. data/lib/muina/action/step/result.rb +0 -56
  49. data/lib/muina/action/step.rb +0 -13
  50. data/lib/muina/action.rb +0 -73
  51. data/lib/muina/any.rb +0 -7
  52. data/lib/muina/classes.rb +0 -7
  53. data/lib/muina/deprecator.rb +0 -93
  54. data/lib/muina/entity.rb +0 -20
  55. data/lib/muina/module.rb +0 -6
  56. data/lib/muina/parameters.rb +0 -7
  57. data/lib/muina/params.rb +0 -19
  58. data/lib/muina/private_creation.rb +0 -12
  59. data/lib/muina/result/factory.rb +0 -37
  60. data/lib/muina/result/null.rb +0 -25
  61. data/lib/muina/service.rb +0 -25
  62. data/lib/muina/symbol_hash.rb +0 -7
  63. data/lib/muina/unit.rb +0 -10
  64. data/lib/muina/untyped_array.rb +0 -7
  65. data/lib/muina/untyped_hash.rb +0 -7
  66. data/lib/muina/value.rb +0 -24
  67. data/muina.gemspec +0 -35
  68. data/rbi/muina.rbi +0 -311
  69. data/sorbet/config +0 -2
  70. data/sorbet/rbi/gems/actionpack@6.1.4.rbi +0 -5045
  71. data/sorbet/rbi/gems/actionview@6.1.4.rbi +0 -2416
  72. data/sorbet/rbi/gems/activesupport@6.1.4.rbi +0 -3778
  73. data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -54
  74. data/sorbet/rbi/gems/awesome_print@1.9.2.rbi +0 -322
  75. data/sorbet/rbi/gems/builder@3.2.4.rbi +0 -8
  76. data/sorbet/rbi/gems/byebug@11.1.3.rbi +0 -18
  77. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -8
  78. data/sorbet/rbi/gems/colorize@0.8.1.rbi +0 -39
  79. data/sorbet/rbi/gems/commander@4.6.0.rbi +0 -8
  80. data/sorbet/rbi/gems/concurrent-ruby@1.1.9.rbi +0 -2403
  81. data/sorbet/rbi/gems/crass@1.0.6.rbi +0 -123
  82. data/sorbet/rbi/gems/diff-lcs@1.4.4.rbi +0 -185
  83. data/sorbet/rbi/gems/docile@1.4.0.rbi +0 -54
  84. data/sorbet/rbi/gems/erubi@1.10.0.rbi +0 -36
  85. data/sorbet/rbi/gems/erubis@2.7.0.rbi +0 -8
  86. data/sorbet/rbi/gems/faker@2.18.0.rbi +0 -2469
  87. data/sorbet/rbi/gems/ffi@1.15.3.rbi +0 -8
  88. data/sorbet/rbi/gems/flay@2.12.1.rbi +0 -178
  89. data/sorbet/rbi/gems/flog@4.6.4.rbi +0 -70
  90. data/sorbet/rbi/gems/formatador@0.3.0.rbi +0 -8
  91. data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +0 -49
  92. data/sorbet/rbi/gems/guard-rspec@4.7.3.rbi +0 -233
  93. data/sorbet/rbi/gems/guard-rubocop@1.4.0.rbi +0 -66
  94. data/sorbet/rbi/gems/guard-shell@0.7.2.rbi +0 -69
  95. data/sorbet/rbi/gems/guard@2.18.0.rbi +0 -617
  96. data/sorbet/rbi/gems/highline@2.0.3.rbi +0 -8
  97. data/sorbet/rbi/gems/i18n@1.8.10.rbi +0 -616
  98. data/sorbet/rbi/gems/io-console@0.5.9.rbi +0 -8
  99. data/sorbet/rbi/gems/irb@1.3.6.rbi +0 -452
  100. data/sorbet/rbi/gems/lefthook@0.7.6.rbi +0 -8
  101. data/sorbet/rbi/gems/listen@3.6.0.rbi +0 -476
  102. data/sorbet/rbi/gems/loofah@2.10.0.rbi +0 -223
  103. data/sorbet/rbi/gems/lumberjack@1.2.8.rbi +0 -431
  104. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -8
  105. data/sorbet/rbi/gems/minitest@5.14.4.rbi +0 -344
  106. data/sorbet/rbi/gems/mutant-license@0.1.1.1.4043027289354708743625974235631451632228.0.rbi +0 -8
  107. data/sorbet/rbi/gems/mutant-rspec@0.10.32.rbi +0 -8
  108. data/sorbet/rbi/gems/mutant@0.10.32.rbi +0 -4154
  109. data/sorbet/rbi/gems/nenv@0.3.0.rbi +0 -88
  110. data/sorbet/rbi/gems/nokogiri@1.11.7.rbi +0 -1422
  111. data/sorbet/rbi/gems/notiffany@0.1.3.rbi +0 -331
  112. data/sorbet/rbi/gems/parallel@1.20.1.rbi +0 -113
  113. data/sorbet/rbi/gems/parlour@6.0.1.rbi +0 -1726
  114. data/sorbet/rbi/gems/parser@3.0.2.0.rbi +0 -1683
  115. data/sorbet/rbi/gems/path_expander@1.1.0.rbi +0 -24
  116. data/sorbet/rbi/gems/polyfill@1.9.0.rbi +0 -393
  117. data/sorbet/rbi/gems/pry@0.14.1.rbi +0 -8
  118. data/sorbet/rbi/gems/racc@1.5.2.rbi +0 -47
  119. data/sorbet/rbi/gems/rack-test@1.1.0.rbi +0 -272
  120. data/sorbet/rbi/gems/rack@2.2.3.rbi +0 -1618
  121. data/sorbet/rbi/gems/rails-dom-testing@2.0.3.rbi +0 -92
  122. data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +0 -183
  123. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +0 -153
  124. data/sorbet/rbi/gems/rake@13.0.6.rbi +0 -808
  125. data/sorbet/rbi/gems/rb-fsevent@0.11.0.rbi +0 -8
  126. data/sorbet/rbi/gems/rb-inotify@0.10.1.rbi +0 -8
  127. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +0 -1120
  128. data/sorbet/rbi/gems/reline@0.2.6.rbi +0 -662
  129. data/sorbet/rbi/gems/rexml@3.2.5.rbi +0 -672
  130. data/sorbet/rbi/gems/rspec-core@3.10.1.rbi +0 -2509
  131. data/sorbet/rbi/gems/rspec-expectations@3.10.1.rbi +0 -1574
  132. data/sorbet/rbi/gems/rspec-mocks@3.10.2.rbi +0 -1462
  133. data/sorbet/rbi/gems/rspec-support@3.10.2.rbi +0 -509
  134. data/sorbet/rbi/gems/rspec@3.10.0.rbi +0 -38
  135. data/sorbet/rbi/gems/rubocop-ast@1.8.0.rbi +0 -2194
  136. data/sorbet/rbi/gems/rubocop-performance@1.11.4.rbi +0 -899
  137. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +0 -118
  138. data/sorbet/rbi/gems/rubocop-rspec@2.4.0.rbi +0 -1805
  139. data/sorbet/rbi/gems/rubocop-sorbet@0.6.2.rbi +0 -288
  140. data/sorbet/rbi/gems/rubocop@1.18.4.rbi +0 -13197
  141. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +0 -405
  142. data/sorbet/rbi/gems/ruby_parser@3.16.0.rbi +0 -4528
  143. data/sorbet/rbi/gems/safe_type@1.1.1.rbi +0 -157
  144. data/sorbet/rbi/gems/sexp_processor@4.15.3.rbi +0 -359
  145. data/sorbet/rbi/gems/shellany@0.0.1.rbi +0 -28
  146. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +0 -89
  147. data/sorbet/rbi/gems/simplecov@0.21.2.rbi +0 -577
  148. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.3.rbi +0 -8
  149. data/sorbet/rbi/gems/sorbet-coerce@0.5.0.rbi +0 -42
  150. data/sorbet/rbi/gems/sorbet-rails@0.7.4.rbi +0 -8
  151. data/sorbet/rbi/gems/sorbet-struct-comparable@1.1.0.rbi +0 -17
  152. data/sorbet/rbi/gems/spoom@1.1.1.rbi +0 -1193
  153. data/sorbet/rbi/gems/tapioca@0.4.23.rbi +0 -1826
  154. data/sorbet/rbi/gems/thor@1.1.0.rbi +0 -838
  155. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +0 -856
  156. data/sorbet/rbi/gems/unicode-display_width@2.0.0.rbi +0 -26
  157. data/sorbet/rbi/gems/unparser@0.6.0.rbi +0 -2037
  158. data/sorbet/rbi/gems/zeitwerk@2.4.2.rbi +0 -173
  159. data/sorbet/rbi/todo.rbi +0 -8
  160. data/sorbet/rbi/typed_params.rbi +0 -7
  161. data/sorbet/tapioca/require.rb +0 -16
@@ -1,344 +0,0 @@
1
- # DO NOT EDIT MANUALLY
2
- # This is an autogenerated file for types exported from the `minitest` gem.
3
- # Please instead update this file by running `bin/tapioca sync`.
4
-
5
- # typed: true
6
-
7
- module Minitest
8
- class << self
9
- def __run(reporter, options); end
10
- def after_run(&block); end
11
- def autorun; end
12
- def backtrace_filter; end
13
- def backtrace_filter=(_arg0); end
14
- def clock_time; end
15
- def extensions; end
16
- def extensions=(_arg0); end
17
- def filter_backtrace(bt); end
18
- def info_signal; end
19
- def info_signal=(_arg0); end
20
- def init_plugins(options); end
21
- def load_plugins; end
22
- def parallel_executor; end
23
- def parallel_executor=(_arg0); end
24
- def process_args(args = T.unsafe(nil)); end
25
- def reporter; end
26
- def reporter=(_arg0); end
27
- def run(args = T.unsafe(nil)); end
28
- def run_one_method(klass, method_name); end
29
- end
30
- end
31
-
32
- class Minitest::AbstractReporter
33
- include ::Mutex_m
34
-
35
- def lock; end
36
- def locked?; end
37
- def passed?; end
38
- def prerecord(klass, name); end
39
- def record(result); end
40
- def report; end
41
- def start; end
42
- def synchronize(&block); end
43
- def try_lock; end
44
- def unlock; end
45
- end
46
-
47
- class Minitest::Assertion < ::Exception
48
- def error; end
49
- def location; end
50
- def result_code; end
51
- def result_label; end
52
- end
53
-
54
- module Minitest::Assertions
55
- def _synchronize; end
56
- def assert(test, msg = T.unsafe(nil)); end
57
- def assert_empty(obj, msg = T.unsafe(nil)); end
58
- def assert_equal(exp, act, msg = T.unsafe(nil)); end
59
- def assert_in_delta(exp, act, delta = T.unsafe(nil), msg = T.unsafe(nil)); end
60
- def assert_in_epsilon(exp, act, epsilon = T.unsafe(nil), msg = T.unsafe(nil)); end
61
- def assert_includes(collection, obj, msg = T.unsafe(nil)); end
62
- def assert_instance_of(cls, obj, msg = T.unsafe(nil)); end
63
- def assert_kind_of(cls, obj, msg = T.unsafe(nil)); end
64
- def assert_match(matcher, obj, msg = T.unsafe(nil)); end
65
- def assert_nil(obj, msg = T.unsafe(nil)); end
66
- def assert_operator(o1, op, o2 = T.unsafe(nil), msg = T.unsafe(nil)); end
67
- def assert_output(stdout = T.unsafe(nil), stderr = T.unsafe(nil)); end
68
- def assert_path_exists(path, msg = T.unsafe(nil)); end
69
- def assert_predicate(o1, op, msg = T.unsafe(nil)); end
70
- def assert_raises(*exp); end
71
- def assert_respond_to(obj, meth, msg = T.unsafe(nil)); end
72
- def assert_same(exp, act, msg = T.unsafe(nil)); end
73
- def assert_send(send_ary, m = T.unsafe(nil)); end
74
- def assert_silent; end
75
- def assert_throws(sym, msg = T.unsafe(nil)); end
76
- def capture_io; end
77
- def capture_subprocess_io; end
78
- def diff(exp, act); end
79
- def exception_details(e, msg); end
80
- def fail_after(y, m, d, msg); end
81
- def flunk(msg = T.unsafe(nil)); end
82
- def message(msg = T.unsafe(nil), ending = T.unsafe(nil), &default); end
83
- def mu_pp(obj); end
84
- def mu_pp_for_diff(obj); end
85
- def pass(_msg = T.unsafe(nil)); end
86
- def refute(test, msg = T.unsafe(nil)); end
87
- def refute_empty(obj, msg = T.unsafe(nil)); end
88
- def refute_equal(exp, act, msg = T.unsafe(nil)); end
89
- def refute_in_delta(exp, act, delta = T.unsafe(nil), msg = T.unsafe(nil)); end
90
- def refute_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = T.unsafe(nil)); end
91
- def refute_includes(collection, obj, msg = T.unsafe(nil)); end
92
- def refute_instance_of(cls, obj, msg = T.unsafe(nil)); end
93
- def refute_kind_of(cls, obj, msg = T.unsafe(nil)); end
94
- def refute_match(matcher, obj, msg = T.unsafe(nil)); end
95
- def refute_nil(obj, msg = T.unsafe(nil)); end
96
- def refute_operator(o1, op, o2 = T.unsafe(nil), msg = T.unsafe(nil)); end
97
- def refute_path_exists(path, msg = T.unsafe(nil)); end
98
- def refute_predicate(o1, op, msg = T.unsafe(nil)); end
99
- def refute_respond_to(obj, meth, msg = T.unsafe(nil)); end
100
- def refute_same(exp, act, msg = T.unsafe(nil)); end
101
- def skip(msg = T.unsafe(nil), bt = T.unsafe(nil)); end
102
- def skip_until(y, m, d, msg); end
103
- def skipped?; end
104
- def things_to_diff(exp, act); end
105
-
106
- class << self
107
- def diff; end
108
- def diff=(o); end
109
- end
110
- end
111
-
112
- Minitest::Assertions::E = T.let(T.unsafe(nil), String)
113
- Minitest::Assertions::UNDEFINED = T.let(T.unsafe(nil), Object)
114
-
115
- class Minitest::BacktraceFilter
116
- def filter(bt); end
117
- end
118
-
119
- Minitest::BacktraceFilter::MT_RE = T.let(T.unsafe(nil), Regexp)
120
-
121
- class Minitest::CompositeReporter < ::Minitest::AbstractReporter
122
- def initialize(*reporters); end
123
-
124
- def <<(reporter); end
125
- def io; end
126
- def passed?; end
127
- def prerecord(klass, name); end
128
- def record(result); end
129
- def report; end
130
- def reporters; end
131
- def reporters=(_arg0); end
132
- def start; end
133
- end
134
-
135
- Minitest::ENCS = T.let(T.unsafe(nil), TrueClass)
136
-
137
- module Minitest::Guard
138
- def jruby?(platform = T.unsafe(nil)); end
139
- def maglev?(platform = T.unsafe(nil)); end
140
- def mri?(platform = T.unsafe(nil)); end
141
- def osx?(platform = T.unsafe(nil)); end
142
- def rubinius?(platform = T.unsafe(nil)); end
143
- def windows?(platform = T.unsafe(nil)); end
144
- end
145
-
146
- module Minitest::Parallel; end
147
-
148
- class Minitest::Parallel::Executor
149
- def initialize(size); end
150
-
151
- def <<(work); end
152
- def shutdown; end
153
- def size; end
154
- def start; end
155
- end
156
-
157
- module Minitest::Parallel::Test
158
- def _synchronize; end
159
- end
160
-
161
- module Minitest::Parallel::Test::ClassMethods
162
- def run_one_method(klass, method_name, reporter); end
163
- def test_order; end
164
- end
165
-
166
- class Minitest::ProgressReporter < ::Minitest::Reporter
167
- def prerecord(klass, name); end
168
- def record(result); end
169
- end
170
-
171
- module Minitest::Reportable
172
- def class_name; end
173
- def error?; end
174
- def location; end
175
- def passed?; end
176
- def result_code; end
177
- def skipped?; end
178
- end
179
-
180
- class Minitest::Reporter < ::Minitest::AbstractReporter
181
- def initialize(io = T.unsafe(nil), options = T.unsafe(nil)); end
182
-
183
- def io; end
184
- def io=(_arg0); end
185
- def options; end
186
- def options=(_arg0); end
187
- end
188
-
189
- class Minitest::Result < ::Minitest::Runnable
190
- include ::Minitest::Reportable
191
-
192
- def class_name; end
193
- def klass; end
194
- def klass=(_arg0); end
195
- def source_location; end
196
- def source_location=(_arg0); end
197
- def to_s; end
198
-
199
- class << self
200
- def from(runnable); end
201
- end
202
- end
203
-
204
- class Minitest::Runnable
205
- def initialize(name); end
206
-
207
- def assertions; end
208
- def assertions=(_arg0); end
209
- def failure; end
210
- def failures; end
211
- def failures=(_arg0); end
212
- def marshal_dump; end
213
- def marshal_load(ary); end
214
- def name; end
215
- def name=(o); end
216
- def passed?; end
217
- def result_code; end
218
- def run; end
219
- def skipped?; end
220
- def time; end
221
- def time=(_arg0); end
222
- def time_it; end
223
-
224
- class << self
225
- def inherited(klass); end
226
- def methods_matching(re); end
227
- def on_signal(name, action); end
228
- def reset; end
229
- def run(reporter, options = T.unsafe(nil)); end
230
- def run_one_method(klass, method_name, reporter); end
231
- def runnable_methods; end
232
- def runnables; end
233
- def with_info_handler(reporter, &block); end
234
- end
235
- end
236
-
237
- Minitest::Runnable::SIGNALS = T.let(T.unsafe(nil), Hash)
238
-
239
- class Minitest::Skip < ::Minitest::Assertion
240
- def result_label; end
241
- end
242
-
243
- class Minitest::StatisticsReporter < ::Minitest::Reporter
244
- def initialize(io = T.unsafe(nil), options = T.unsafe(nil)); end
245
-
246
- def assertions; end
247
- def assertions=(_arg0); end
248
- def count; end
249
- def count=(_arg0); end
250
- def errors; end
251
- def errors=(_arg0); end
252
- def failures; end
253
- def failures=(_arg0); end
254
- def passed?; end
255
- def record(result); end
256
- def report; end
257
- def results; end
258
- def results=(_arg0); end
259
- def skips; end
260
- def skips=(_arg0); end
261
- def start; end
262
- def start_time; end
263
- def start_time=(_arg0); end
264
- def total_time; end
265
- def total_time=(_arg0); end
266
- end
267
-
268
- class Minitest::SummaryReporter < ::Minitest::StatisticsReporter
269
- def aggregated_results(io); end
270
- def old_sync; end
271
- def old_sync=(_arg0); end
272
- def report; end
273
- def start; end
274
- def statistics; end
275
- def summary; end
276
- def sync; end
277
- def sync=(_arg0); end
278
- def to_s; end
279
-
280
- private
281
-
282
- def binary_string; end
283
- end
284
-
285
- class Minitest::Test < ::Minitest::Runnable
286
- include ::Minitest::Assertions
287
- include ::Minitest::Reportable
288
- include ::Minitest::Test::LifecycleHooks
289
- include ::Minitest::Guard
290
- extend ::Minitest::Guard
291
-
292
- def capture_exceptions; end
293
- def class_name; end
294
- def run; end
295
- def with_info_handler(&block); end
296
-
297
- class << self
298
- def i_suck_and_my_tests_are_order_dependent!; end
299
- def io_lock; end
300
- def io_lock=(_arg0); end
301
- def make_my_diffs_pretty!; end
302
- def parallelize_me!; end
303
- def runnable_methods; end
304
- def test_order; end
305
- end
306
- end
307
-
308
- module Minitest::Test::LifecycleHooks
309
- def after_setup; end
310
- def after_teardown; end
311
- def before_setup; end
312
- def before_teardown; end
313
- def setup; end
314
- def teardown; end
315
- end
316
-
317
- Minitest::Test::PASSTHROUGH_EXCEPTIONS = T.let(T.unsafe(nil), Array)
318
- Minitest::Test::TEARDOWN_METHODS = T.let(T.unsafe(nil), Array)
319
-
320
- class Minitest::UnexpectedError < ::Minitest::Assertion
321
- def initialize(error); end
322
-
323
- def backtrace; end
324
- def error; end
325
- def error=(_arg0); end
326
- def message; end
327
- def result_label; end
328
- end
329
-
330
- class Minitest::Unit
331
- class << self
332
- def after_tests(&b); end
333
- def autorun; end
334
- end
335
- end
336
-
337
- class Minitest::Unit::TestCase < ::Minitest::Test
338
- class << self
339
- def inherited(klass); end
340
- end
341
- end
342
-
343
- Minitest::Unit::VERSION = T.let(T.unsafe(nil), String)
344
- Minitest::VERSION = T.let(T.unsafe(nil), String)
@@ -1,8 +0,0 @@
1
- # DO NOT EDIT MANUALLY
2
- # This is an autogenerated file for types exported from the `mutant-license` gem.
3
- # Please instead update this file by running `bin/tapioca sync`.
4
-
5
- # typed: true
6
-
7
- # THIS IS AN EMPTY RBI FILE.
8
- # see https://github.com/Shopify/tapioca/blob/master/README.md#manual-gem-requires
@@ -1,8 +0,0 @@
1
- # DO NOT EDIT MANUALLY
2
- # This is an autogenerated file for types exported from the `mutant-rspec` gem.
3
- # Please instead update this file by running `bin/tapioca sync`.
4
-
5
- # typed: true
6
-
7
- # THIS IS AN EMPTY RBI FILE.
8
- # see https://github.com/Shopify/tapioca/blob/master/README.md#manual-gem-requires