dry-monads-sorbet 1.1.5 → 1.1.6.pre

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +7 -3
  3. data/.ruby-version +1 -1
  4. data/CHANGELOG.md +4 -0
  5. data/lib/bundled_rbi/dry-monads.rbi +3 -7
  6. data/lib/dry-monads-sorbet.rb +1 -0
  7. data/lib/dry-monads-sorbet/railtie.rb +1 -0
  8. data/lib/dry/monads/sorbet/version.rb +2 -1
  9. data/sorbet/config +4 -0
  10. data/sorbet/rbi/gems/activesupport.rbi +1722 -0
  11. data/sorbet/rbi/gems/ast.rbi +48 -0
  12. data/sorbet/rbi/gems/byebug.rbi +1041 -0
  13. data/sorbet/rbi/gems/coderay.rbi +285 -0
  14. data/sorbet/rbi/gems/concurrent-ruby.rbi +1586 -0
  15. data/sorbet/rbi/gems/docile.rbi +32 -0
  16. data/sorbet/rbi/gems/dry-core.rbi +38 -0
  17. data/sorbet/rbi/gems/dry-equalizer.rbi +26 -0
  18. data/sorbet/rbi/gems/dry-monads.rbi +510 -0
  19. data/sorbet/rbi/gems/em-websocket.rbi +225 -0
  20. data/sorbet/rbi/gems/eventmachine.rbi +489 -0
  21. data/sorbet/rbi/gems/ffaker.rbi +60 -0
  22. data/sorbet/rbi/gems/guard.rbi +397 -0
  23. data/sorbet/rbi/gems/http_parser.rb.rbi +37 -0
  24. data/sorbet/rbi/gems/i18n.rbi +133 -0
  25. data/sorbet/rbi/gems/kwalify.rbi +340 -0
  26. data/sorbet/rbi/gems/listen.rbi +324 -0
  27. data/sorbet/rbi/gems/lumberjack.rbi +300 -0
  28. data/sorbet/rbi/gems/method_source.rbi +64 -0
  29. data/sorbet/rbi/gems/multi_json.rbi +62 -0
  30. data/sorbet/rbi/gems/nenv.rbi +60 -0
  31. data/sorbet/rbi/gems/notiffany.rbi +215 -0
  32. data/sorbet/rbi/gems/parallel.rbi +82 -0
  33. data/sorbet/rbi/gems/parser.rbi +1846 -0
  34. data/sorbet/rbi/gems/pry-byebug.rbi +155 -0
  35. data/sorbet/rbi/gems/pry.rbi +1949 -0
  36. data/sorbet/rbi/gems/rainbow.rbi +118 -0
  37. data/sorbet/rbi/gems/rake.rbi +648 -0
  38. data/sorbet/rbi/gems/rb-fsevent.rbi +31 -0
  39. data/sorbet/rbi/gems/rb-readline.rbi +767 -0
  40. data/sorbet/rbi/gems/reek.rbi +1027 -0
  41. data/sorbet/rbi/gems/regexp_parser.rbi +913 -0
  42. data/sorbet/rbi/gems/rexml.rbi +605 -0
  43. data/sorbet/rbi/gems/rspec-core.rbi +1913 -0
  44. data/sorbet/rbi/gems/rspec-expectations.rbi +1123 -0
  45. data/sorbet/rbi/gems/rspec-mocks.rbi +1099 -0
  46. data/sorbet/rbi/gems/rspec-support.rbi +280 -0
  47. data/sorbet/rbi/gems/rspec.rbi +15 -0
  48. data/sorbet/rbi/gems/rubocop-ast.rbi +1053 -0
  49. data/sorbet/rbi/gems/rubocop-rspec.rbi +937 -0
  50. data/sorbet/rbi/gems/rubocop.rbi +6841 -0
  51. data/sorbet/rbi/gems/ruby-progressbar.rbi +305 -0
  52. data/sorbet/rbi/gems/shellany.rbi +29 -0
  53. data/sorbet/rbi/gems/shoulda-matchers.rbi +1848 -0
  54. data/sorbet/rbi/gems/simplecov-html.rbi +35 -0
  55. data/sorbet/rbi/gems/simplecov.rbi +361 -0
  56. data/sorbet/rbi/gems/sqlite3.rbi +354 -0
  57. data/sorbet/rbi/gems/stackprof.rbi +52 -0
  58. data/sorbet/rbi/gems/thor.rbi +32 -0
  59. data/sorbet/rbi/gems/thread_safe.rbi +82 -0
  60. data/sorbet/rbi/gems/timecop.rbi +98 -0
  61. data/sorbet/rbi/gems/tzinfo.rbi +406 -0
  62. data/sorbet/rbi/gems/unicode-display_width.rbi +17 -0
  63. data/sorbet/rbi/hidden-definitions/errors.txt +7267 -0
  64. data/sorbet/rbi/hidden-definitions/hidden.rbi +14661 -0
  65. data/sorbet/rbi/sorbet-typed/lib/activesupport/>=6.0.0.rc1/activesupport.rbi +23 -0
  66. data/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +1431 -0
  67. data/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +108 -0
  68. data/sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi +276 -0
  69. data/sorbet/rbi/sorbet-typed/lib/rubocop-rspec/~>1.39/rubocop-rspec.rbi +398 -0
  70. data/sorbet/rbi/sorbet-typed/lib/rubocop/~>0.85/rubocop.rbi +2072 -0
  71. data/sorbet/rbi/todo.rbi +8 -0
  72. metadata +71 -8
@@ -0,0 +1,23 @@
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
@@ -0,0 +1,1431 @@
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/all/activesupport.rbi
7
+ #
8
+ # typed: false
9
+
10
+ module ActiveSupport
11
+ sig { params(kind: Symbol, blk: T.proc.bind(T.untyped).void).void }
12
+ def self.on_load(kind, &blk); end
13
+ end
14
+
15
+ class Object
16
+ sig { params(duck: T.any(String, Symbol)).returns(T::Boolean) }
17
+ def acts_like?(duck); end
18
+
19
+ sig {returns(T::Boolean)}
20
+ def blank?; end
21
+
22
+ sig { returns(T.self_type) }
23
+ def deep_dup; end
24
+
25
+ sig { returns(TrueClass) }
26
+ def duplicable?; end
27
+
28
+ sig { params(another_object: Object).returns(T::Boolean) }
29
+ def in?(another_object); end
30
+
31
+ sig { returns(T::Hash[String, T.untyped]) }
32
+ def instance_values; end
33
+
34
+ sig { returns(T::Array[String]) }
35
+ def instance_variable_names; end
36
+
37
+ sig { returns(T.nilable(T.self_type)) }
38
+ def presence; end
39
+
40
+ sig { returns(T::Boolean) }
41
+ def present?; end
42
+
43
+ sig { returns(String) }
44
+ def to_param; end
45
+
46
+ sig { params(key: String).returns(String) }
47
+ def to_query(key); end
48
+
49
+ sig do
50
+ params(
51
+ method_name: T.any(Symbol, String, NilClass),
52
+ args: T.untyped,
53
+ b: T.nilable(T.proc.params(arg0: T.untyped).returns(T.untyped))
54
+ ).returns(T.untyped)
55
+ end
56
+ def try(method_name = nil, *args, &b); end
57
+
58
+ sig do
59
+ params(
60
+ method_name: T.any(Symbol, String, NilClass),
61
+ args: T.untyped,
62
+ b: T.nilable(T.proc.params(arg0: T.untyped).returns(T.untyped))
63
+ ).returns(T.untyped)
64
+ end
65
+ def try!(method_name = nil, *args, &b); end
66
+
67
+ sig do
68
+ params(
69
+ options: T::Hash[T.untyped, T.untyped],
70
+ block: T.nilable(T.proc.returns(T.untyped))
71
+ ).returns(T.untyped)
72
+ end
73
+ def with_options(options, &block); end
74
+ end
75
+
76
+ class FalseClass
77
+ sig { returns(NilClass) }
78
+ def presence; end
79
+ end
80
+
81
+ class Method
82
+ sig { returns(FalseClass) }
83
+ def duplicable?; end
84
+ end
85
+
86
+ class NilClass
87
+ sig { returns(T::Boolean) }
88
+ def duplicable?; end
89
+
90
+ sig do
91
+ params(
92
+ method_name: T.any(Symbol, String, NilClass),
93
+ args: T.untyped,
94
+ b: T.nilable(T.proc.params(arg0: T.untyped).returns(T.untyped))
95
+ ).returns(NilClass)
96
+ end
97
+ def try(method_name = nil, *args, &b); end
98
+
99
+ sig do
100
+ params(
101
+ method_name: T.any(Symbol, String, NilClass),
102
+ args: T.untyped,
103
+ b: T.nilable(T.proc.params(arg0: T.untyped).returns(T.untyped))
104
+ ).returns(NilClass)
105
+ end
106
+ def try!(method_name = nil, *args, &b); end
107
+ end
108
+
109
+ class String
110
+ sig { returns(T::Boolean) }
111
+ def acts_like_string?; end
112
+
113
+ sig { params(position: T.any(Integer, String, Regexp, T::Range[Integer])).returns(T.nilable(String)) }
114
+ def at(position); end
115
+
116
+ sig { returns(T::Boolean) }
117
+ def blank?; end
118
+
119
+ sig { params(first_letter: Symbol).returns(String) }
120
+ def camelize(first_letter = :upper); end
121
+
122
+ # camelcase is an alias of camelize
123
+ sig { params(first_letter: Symbol).returns(String) }
124
+ def camelcase(first_letter = :upper); end
125
+
126
+ sig { returns(String) }
127
+ def classify; end
128
+
129
+ sig { returns(Module) }
130
+ def constantize; end
131
+
132
+ sig { returns(String) }
133
+ def dasherize; end
134
+
135
+ sig { returns(String) }
136
+ def deconstantize; end
137
+
138
+ sig { returns(String) }
139
+ def demodulize; end
140
+
141
+ # ends_with? is an alias of the core method 'end_with?'
142
+ sig { params(arg0: String).returns(T::Boolean) }
143
+ def ends_with?(*arg0); end
144
+
145
+ sig { params(string: String).returns(T::Boolean) }
146
+ def exclude?(string); end
147
+
148
+ sig { params(limit: Integer).returns(String) }
149
+ def first(limit = 1); end
150
+
151
+ sig { params(separate_class_name_and_id_with_underscore: T::Boolean).returns(String) }
152
+ def foreign_key(separate_class_name_and_id_with_underscore = true); end
153
+
154
+ sig { params(position: Integer).returns(String) }
155
+ def from(position); end
156
+
157
+ sig { returns(T.untyped) }
158
+ def html_safe; end
159
+
160
+ sig { params(capitalize: T::Boolean, keep_id_suffix: T::Boolean).returns(String) }
161
+ def humanize(capitalize: true, keep_id_suffix: false); end
162
+
163
+ # returns Time in the case zone is passed nil and ActiveSupport::TimeWithZone otherwise
164
+ sig { params(zone: T.nilable(T.any(String, ActiveSupport::TimeZone))).returns(T.any(ActiveSupport::TimeWithZone, Time)) }
165
+ def in_time_zone(zone = ::Time.zone); end
166
+
167
+ sig { params(amount: Integer, indent_string: T.nilable(String), indent_empty_lines: T::Boolean).returns(T.nilable(String)) }
168
+ def indent!(amount, indent_string = nil, indent_empty_lines = false); end
169
+
170
+ sig { params(amount: Integer, indent_string: T.nilable(String), indent_empty_lines: T::Boolean).returns(T.nilable(String)) }
171
+ def indent(amount, indent_string = nil, indent_empty_lines = false); end
172
+
173
+ sig { returns(ActiveSupport::StringInquirer) }
174
+ def inquiry; end
175
+
176
+ sig { returns(T::Boolean) }
177
+ def is_utf8?; end
178
+
179
+ sig { params(limit: Integer).returns(String) }
180
+ def last(limit = 1); end
181
+
182
+ sig { returns(ActiveSupport::Multibyte::Chars) }
183
+ def mb_chars; end
184
+
185
+ sig { params(separator: String, preserve_case: T::Boolean).returns(String) }
186
+ def parameterize(separator: "-", preserve_case: false); end
187
+
188
+ sig { params(count: T.nilable(Integer), locale: Symbol).returns(String) }
189
+ def pluralize(count = nil, locale = :en); end
190
+
191
+ sig { params(patterns: T.untyped).returns(T.untyped) }
192
+ def remove!(*patterns); end
193
+
194
+ sig { params(patterns: T.untyped).returns(T.untyped) }
195
+ def remove(*patterns); end
196
+
197
+ sig { returns(T.untyped) }
198
+ def safe_constantize; end
199
+
200
+ sig { params(locale: Symbol).returns(String) }
201
+ def singularize(locale = :en); end
202
+
203
+ sig { returns(String) }
204
+ def squish!; end
205
+
206
+ sig { returns(String) }
207
+ def squish; end
208
+
209
+ # starts_with? is an alias of the core method 'start_with?''
210
+ sig { params(arg0: String).returns(T::Boolean) }
211
+ def starts_with?(*arg0); end
212
+
213
+ sig { returns(String) }
214
+ def strip_heredoc; end
215
+
216
+ sig { returns(String) }
217
+ def tableize; end
218
+
219
+ sig { params(keep_id_suffix: T::Boolean).returns(String) }
220
+ def titleize(keep_id_suffix: false); end
221
+
222
+ # titlecase is an alias of titleize
223
+ sig { params(keep_id_suffix: T::Boolean).returns(String) }
224
+ def titlecase(keep_id_suffix: false); end
225
+
226
+ sig { params(position: Integer).returns(String) }
227
+ def to(position); end
228
+
229
+ sig { returns(Date) }
230
+ def to_date; end
231
+
232
+ sig { returns(DateTime) }
233
+ def to_datetime; end
234
+
235
+ sig { params(form: Symbol).returns(Time) }
236
+ def to_time(form = :local); end
237
+
238
+ sig { params(truncate_at: Integer, separator: T.nilable(T.any(String, Regexp)), omission: String).returns(String) }
239
+ def truncate(truncate_at, separator: nil, omission: "..."); end
240
+
241
+ sig { params(words_count: Integer, separator: T.nilable(T.any(String, Regexp)), omission: String).returns(String) }
242
+ def truncate_words(words_count, separator: nil, omission: "..."); end
243
+
244
+ sig { returns(String) }
245
+ def underscore; end
246
+
247
+ sig { returns(String) }
248
+ def upcase_first; end
249
+ end
250
+
251
+ class Array
252
+ sig { returns(T::Boolean) }
253
+ def blank?; end
254
+
255
+ sig { returns(T::Array[T.untyped]) }
256
+ def deep_dup; end
257
+
258
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
259
+ def extract_options!; end
260
+
261
+ sig { returns(T.nilable(Elem)) }
262
+ def fifth; end
263
+
264
+ sig { returns(T.nilable(Elem)) }
265
+ def forty_two; end
266
+
267
+ sig { returns(T.nilable(Elem)) }
268
+ def fourth; end
269
+
270
+ sig { params(position: Integer).returns(T::Array[T.untyped]) }
271
+ def from(position); end
272
+
273
+ sig { params(number: Integer, fill_with: T.untyped).returns(T.untyped) }
274
+ def in_groups(number, fill_with = nil); end
275
+
276
+ sig { params(number: Integer, fill_with: T.untyped).returns(T.untyped) }
277
+ def in_groups_of(number, fill_with = nil); end
278
+
279
+ sig { returns(T.untyped) }
280
+ def inquiry; end
281
+
282
+ sig { returns(T.nilable(Elem)) }
283
+ def second; end
284
+
285
+ sig { returns(T.nilable(Elem)) }
286
+ def second_to_last; end
287
+
288
+ sig do
289
+ params(
290
+ value: T.untyped,
291
+ blk: T.proc.params(arg0: Elem).void
292
+ ).returns(T::Array[Elem])
293
+ end
294
+ def split(value = nil, &blk); end
295
+
296
+ sig { returns(T.nilable(Elem)) }
297
+ def third; end
298
+
299
+ sig { returns(T.nilable(Elem)) }
300
+ def third_to_last; end
301
+
302
+ sig { params(position: Integer).returns(T::Array[T.untyped]) }
303
+ def to(position); end
304
+
305
+ # to_default_s is an alias of the core method 'to_s'
306
+ sig {returns(String)}
307
+ def to_default_s; end
308
+
309
+ sig { params(format: Symbol).returns(String) }
310
+ def to_formatted_s(format = :default); end
311
+
312
+ sig { returns(String) }
313
+ def to_param; end
314
+
315
+ sig { params(key: String).returns(String) }
316
+ def to_query(key); end
317
+
318
+ sig do
319
+ params(
320
+ words_connector: String,
321
+ two_words_connector: String,
322
+ last_word_connector: String,
323
+ locale: T.nilable(Symbol)
324
+ ).returns(String)
325
+ end
326
+ def to_sentence(words_connector: ", ", two_words_connector: " and ", last_word_connector: ", and ", locale: nil); end
327
+
328
+ sig { params(options: T.untyped).returns(T.untyped) }
329
+ def to_xml(options = nil); end
330
+
331
+ sig { params(elements: T.untyped).returns(T.untyped) }
332
+ def without(*elements); end
333
+ end
334
+
335
+ module ActiveSupport::NumberHelper
336
+ sig do
337
+ params(
338
+ number: T.any(Integer, Float, String),
339
+ locale: Symbol,
340
+ precision: T.nilable(Integer),
341
+ unit: String,
342
+ separator: String,
343
+ delimiter: String,
344
+ format: String,
345
+ negative_format: String
346
+ ).returns(String)
347
+ end
348
+ def number_to_currency(number, locale: :en, precision: 2, unit: "$", separator: ".", delimiter: ",", format: "%u%n", negative_format: "-%u%n"); end
349
+
350
+ sig do
351
+ params(
352
+ number: T.any(Integer, Float, String),
353
+ locale: Symbol,
354
+ delimiter: String,
355
+ separator: String,
356
+ delimiter_pattern: T.nilable(Regexp)
357
+ ).returns(String)
358
+ end
359
+ def number_to_delimited(number, locale: :en, delimiter: ",", separator: ".", delimiter_pattern: nil); end
360
+
361
+ sig do
362
+ params(
363
+ number: T.any(Integer, Float, String),
364
+ locale: Symbol,
365
+ precision: T.nilable(Integer),
366
+ significant: T::Boolean,
367
+ separator: String,
368
+ delimiter: String,
369
+ strip_insignificant_zeros: T::Boolean,
370
+ units: T.any(T::Hash[T.untyped, T.untyped], String, Symbol),
371
+ format: String
372
+ ).returns(String)
373
+ end
374
+ def number_to_human(number, locale: :en, precision: 3, significant: true, separator: ".", delimiter: "", strip_insignificant_zeros: true, units: {}, format: "%n %u"); end
375
+
376
+ sig do
377
+ params(
378
+ number: T.any(Integer, Float, String),
379
+ locale: Symbol,
380
+ precision: T.nilable(Integer),
381
+ significant: T::Boolean,
382
+ separator: String,
383
+ delimiter: String,
384
+ strip_insignificant_zeros: T::Boolean
385
+ ).returns(String)
386
+ end
387
+ def number_to_human_size(number, locale: :en, precision: 3, significant: true, separator: ".", delimiter: "", strip_insignificant_zeros: true); end
388
+
389
+ sig do
390
+ params(
391
+ number: T.any(Integer, Float, String),
392
+ locale: Symbol,
393
+ precision: T.nilable(Integer),
394
+ significant: T::Boolean,
395
+ separator: String,
396
+ delimiter: String,
397
+ strip_insignificant_zeros: T::Boolean,
398
+ format: String
399
+ ).returns(String)
400
+ end
401
+ def number_to_percentage(number, locale: :en, precision: 3, significant: false, separator: ".", delimiter: "", strip_insignificant_zeros: false, format: "%n%"); end
402
+
403
+ sig do
404
+ params(
405
+ number: T.any(Integer, Float, String),
406
+ area_code: T::Boolean,
407
+ delimiter: String,
408
+ extension: T.nilable(Integer),
409
+ country_code: T.nilable(Integer),
410
+ pattern: T.nilable(Regexp)
411
+ ).returns(String)
412
+ end
413
+ def number_to_phone(number, area_code: false, delimiter: "-", extension: nil, country_code: nil, pattern: nil); end
414
+
415
+ sig do
416
+ params(
417
+ number: T.any(Integer, Float, String),
418
+ locale: Symbol,
419
+ precision: T.nilable(Integer),
420
+ significant: T::Boolean,
421
+ separator: String,
422
+ delimiter: String,
423
+ strip_insignificant_zeros: T::Boolean
424
+ ).returns(String)
425
+ end
426
+ def number_to_rounded(number, locale: :en, precision: 3, significant: false, separator: ".", delimiter: "", strip_insignificant_zeros: false); end
427
+ end
428
+
429
+ module ActiveSupport::Inflector
430
+ sig do
431
+ params(
432
+ term: String,
433
+ uppercase_first_letter: T::Boolean
434
+ ).returns(String)
435
+ end
436
+ def camelize(term, uppercase_first_letter = true); end
437
+
438
+ sig { params(table_name: String).returns(String) }
439
+ def classify(table_name); end
440
+
441
+ sig { params(camel_cased_word: String).returns(T.untyped) }
442
+ def constantize(camel_cased_word); end
443
+
444
+ sig { params(underscored_word: String).returns(String) }
445
+ def dasherize(underscored_word); end
446
+
447
+ sig { params(path: String).returns(String) }
448
+ def deconstantize(path); end
449
+
450
+ sig { params(path: String).returns(String) }
451
+ def demodulize(path); end
452
+
453
+ sig do
454
+ params(
455
+ class_name: String,
456
+ separate_class_name_and_id_with_underscore: T::Boolean
457
+ ).returns(String)
458
+ end
459
+ def foreign_key(class_name, separate_class_name_and_id_with_underscore = true); end
460
+
461
+ sig do
462
+ params(
463
+ lower_case_and_underscored_word: String,
464
+ capitalize: T::Boolean,
465
+ keep_id_suffix: T::Boolean
466
+ ).returns(String)
467
+ end
468
+ def humanize(lower_case_and_underscored_word, capitalize: true, keep_id_suffix: false); end
469
+
470
+ sig { params(locale: Symbol, blk: T.untyped).returns(T.untyped) }
471
+ def inflections(locale = :en, &blk); end
472
+
473
+ sig { params(number: Integer).returns(String) }
474
+ def ordinal(number); end
475
+
476
+ sig { params(number: Integer).returns(String) }
477
+ def ordinalize(number); end
478
+
479
+ sig do
480
+ params(
481
+ string: String,
482
+ separator: String,
483
+ preserve_case: T::Boolean,
484
+ locale: Symbol
485
+ ).returns(String)
486
+ end
487
+ def parameterize(string, separator: '-', preserve_case: false, locale: nil); end
488
+
489
+ sig { params(word: String, locale: Symbol).returns(String) }
490
+ def pluralize(word, locale = :en); end
491
+
492
+ sig { params(camel_cased_word: String).returns(T.untyped) }
493
+ def safe_constantize(camel_cased_word); end
494
+
495
+ sig { params(word: String, locale: Symbol).returns(String) }
496
+ def singularize(word, locale = :en); end
497
+
498
+ sig { params(class_name: String).returns(String) }
499
+ def tableize(class_name); end
500
+
501
+ sig { params(word: String, keep_id_suffix: T::Boolean).returns(String) }
502
+ def titleize(word, keep_id_suffix: false); end
503
+
504
+ sig { params(string: String, replacement: String, locale: Symbol).returns(String) }
505
+ def transliterate(string, replacement = '?', locale: nil); end
506
+
507
+ sig { params(camel_cased_word: String).returns(String) }
508
+ def underscore(camel_cased_word); end
509
+
510
+ sig { params(string: String).returns(String) }
511
+ def upcase_first(string); end
512
+ end
513
+
514
+ # defines some of the methods at https://github.com/rails/rails/blob/v6.0.0/activesupport/lib/active_support/core_ext/time/calculations.rb
515
+ # these get added to Time, but are available on TimeWithZone thanks to https://github.com/rails/rails/blob/v6.0.0/activesupport/lib/active_support/time_with_zone.rb#L520
516
+ # this is not a complete definition!
517
+ class ActiveSupport::TimeWithZone
518
+ sig { returns(ActiveSupport::TimeWithZone) }
519
+ def midnight; end
520
+
521
+ sig { returns(ActiveSupport::TimeWithZone) }
522
+ def beginning_of_day; end
523
+
524
+ sig { returns(ActiveSupport::TimeWithZone) }
525
+ def at_midnight; end
526
+
527
+ sig { returns(ActiveSupport::TimeWithZone) }
528
+ def at_beginning_of_day; end
529
+
530
+ sig { returns(ActiveSupport::TimeWithZone) }
531
+ def middle_of_day; end
532
+
533
+ sig { returns(ActiveSupport::TimeWithZone) }
534
+ def midday; end
535
+
536
+ sig { returns(ActiveSupport::TimeWithZone) }
537
+ def noon; end
538
+
539
+ sig { returns(ActiveSupport::TimeWithZone) }
540
+ def at_midday; end
541
+
542
+ sig { returns(ActiveSupport::TimeWithZone) }
543
+ def at_noon; end
544
+
545
+ sig { returns(ActiveSupport::TimeWithZone) }
546
+ def at_middle_of_day; end
547
+
548
+ sig { returns(ActiveSupport::TimeWithZone) }
549
+ def end_of_day; end
550
+
551
+ sig { returns(ActiveSupport::TimeWithZone) }
552
+ def at_end_of_day; end
553
+
554
+ sig { returns(ActiveSupport::TimeWithZone) }
555
+ def end_of_year; end
556
+
557
+ sig { returns(ActiveSupport::TimeWithZone) }
558
+ def at_end_of_year; end
559
+
560
+ sig { returns(ActiveSupport::TimeWithZone) }
561
+ def beginning_of_year; end
562
+
563
+ sig { returns(ActiveSupport::TimeWithZone) }
564
+ def at_beginning_of_year; end
565
+
566
+ sig { returns(ActiveSupport::TimeWithZone) }
567
+ def end_of_month; end
568
+
569
+ sig { returns(ActiveSupport::TimeWithZone) }
570
+ def at_end_of_month; end
571
+
572
+ sig { returns(ActiveSupport::TimeWithZone) }
573
+ def beginning_of_month; end
574
+
575
+ sig { returns(ActiveSupport::TimeWithZone) }
576
+ def at_beginning_of_month; end
577
+
578
+ sig { returns(ActiveSupport::TimeWithZone) }
579
+ def end_of_hour; end
580
+
581
+ sig { returns(ActiveSupport::TimeWithZone) }
582
+ def at_end_of_hour; end
583
+
584
+ sig { returns(ActiveSupport::TimeWithZone) }
585
+ def beginning_of_hour; end
586
+
587
+ sig { returns(ActiveSupport::TimeWithZone) }
588
+ def at_beginning_of_hour; end
589
+
590
+ # Returns a `Time` instance that represents the time in `time_zone`.
591
+ sig { returns(Time) }
592
+ def time; end
593
+
594
+ # Returns a `Time` instance of the simultaneous time in the UTC timezone.
595
+ sig { returns(Time) }
596
+ def utc; end
597
+
598
+ # Returns the underlying TZInfo::TimezonePeriod.
599
+ sig { returns(TZInfo::TimezonePeriod) }
600
+ def period; end
601
+
602
+ # Returns the simultaneous time in `Time.zone`, or the specified zone.
603
+ sig { params(new_zone: T.untyped).returns(ActiveSupport::TimeWithZone) }
604
+ def in_time_zone(new_zone = ::Time.zone); end
605
+
606
+ # Returns a `Time` instance of the simultaneous time in the system timezone.
607
+ sig { params(utc_offset: T.untyped).returns(Time) }
608
+ def localtime(utc_offset = nil); end
609
+
610
+ ### The following methods are generated dynamically and call to the corresponding Time methods.
611
+
612
+ sig { returns(Integer) }
613
+ def year; end
614
+
615
+ sig { returns(Integer) }
616
+ def mon; end
617
+
618
+ sig { returns(Integer) }
619
+ def month; end
620
+
621
+ sig { returns(Integer) }
622
+ def day; end
623
+
624
+ sig { returns(Integer) }
625
+ def mday; end
626
+
627
+ sig { returns(Integer) }
628
+ def wday; end
629
+
630
+ sig { returns(Integer) }
631
+ def yday; end
632
+
633
+ sig { returns(Integer) }
634
+ def hour; end
635
+
636
+ sig { returns(Integer) }
637
+ def min; end
638
+
639
+ sig { returns(Integer) }
640
+ def sec; end
641
+
642
+ sig { returns(Numeric) }
643
+ def usec; end
644
+
645
+ sig { returns(Numeric) }
646
+ def nsec; end
647
+
648
+ ### End dynamically-generated methods
649
+
650
+ # Returns true if the current time is within Daylight Savings Time for the
651
+ # specified time zone.
652
+ #
653
+ # ```ruby
654
+ # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)'
655
+ # Time.zone.parse("2012-5-30").dst? # => true
656
+ # Time.zone.parse("2012-11-30").dst? # => false
657
+ # ```
658
+ sig { returns(T::Boolean) }
659
+ def dst?; end
660
+
661
+ # Returns true if the current time zone is set to UTC.
662
+ #
663
+ # ```ruby
664
+ # Time.zone = 'UTC' # => 'UTC'
665
+ # Time.zone.now.utc? # => true
666
+ # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)'
667
+ # Time.zone.now.utc? # => false
668
+ # ```
669
+ sig { returns(T::Boolean) }
670
+ def utc?; end
671
+
672
+ # Returns the offset from current time to UTC time in seconds.
673
+ sig { returns(Integer) }
674
+ def utc_offset; end
675
+
676
+ # Returns a formatted string of the offset from UTC, or an alternative
677
+ # string if the time zone is already UTC.
678
+ #
679
+ # ```ruby
680
+ # Time.zone = 'Eastern Time (US & Canada)' # => "Eastern Time (US & Canada)"
681
+ # Time.zone.now.formatted_offset(true) # => "-05:00"
682
+ # Time.zone.now.formatted_offset(false) # => "-0500"
683
+ # Time.zone = 'UTC' # => "UTC"
684
+ # Time.zone.now.formatted_offset(true, "0") # => "0"
685
+ # ```
686
+ sig { params(colon: T::Boolean, alternate_utc_string: T.untyped).returns(String) }
687
+ def formatted_offset(colon = true, alternate_utc_string = nil); end
688
+
689
+ # Returns the time zone abbreviation.
690
+ #
691
+ # ```ruby
692
+ # Time.zone = 'Eastern Time (US & Canada)' # => "Eastern Time (US & Canada)"
693
+ # Time.zone.now.zone # => "EST"
694
+ # ```
695
+ sig { returns(String) }
696
+ def zone; end
697
+
698
+ # Returns a string of the object's date, time, zone, and offset from UTC.
699
+ #
700
+ # ```ruby
701
+ # Time.zone.now.inspect # => "Thu, 04 Dec 2014 11:00:25 EST -05:00"
702
+ # ```
703
+ sig { returns(String) }
704
+ def inspect; end
705
+
706
+ # Returns a string of the object's date and time in the ISO 8601 standard
707
+ # format.
708
+ #
709
+ # ```ruby
710
+ # Time.zone.now.xmlschema # => "2014-12-04T11:02:37-05:00"
711
+ # ```
712
+ sig { params(fraction_digits: Integer).returns(String) }
713
+ def xmlschema(fraction_digits = 0); end
714
+
715
+ # Returns a string of the object's date and time in the format used by
716
+ # HTTP requests.
717
+ #
718
+ # ```ruby
719
+ # Time.zone.now.httpdate # => "Tue, 01 Jan 2013 04:39:43 GMT"
720
+ # ```
721
+ sig { returns(String) }
722
+ def httpdate; end
723
+
724
+ # Returns a string of the object's date and time in the RFC 2822 standard
725
+ # format.
726
+ #
727
+ # ```ruby
728
+ # Time.zone.now.rfc2822 # => "Tue, 01 Jan 2013 04:51:39 +0000"
729
+ # ```
730
+ sig { returns(String) }
731
+ def rfc2822; end
732
+
733
+ # Returns a string of the object's date and time.
734
+ # Accepts an optional `format`:
735
+ # * `:default` - default value, mimics Ruby Time#to_s format.
736
+ # * `:db` - format outputs time in UTC :db time. See Time#to_formatted_s(:db).
737
+ # * Any key in `Time::DATE_FORMATS` can be used. See active_support/core_ext/time/conversions.rb.
738
+ sig { params(format: Symbol).returns(String) }
739
+ def to_s(format = :default); end
740
+
741
+ # Replaces `%Z` directive with +zone before passing to Time#strftime,
742
+ # so that zone information is correct.
743
+ sig { params(format: String).returns(String) }
744
+ def strftime(format); end
745
+
746
+ # Returns true if the current object's time is within the specified
747
+ # `min` and `max` time.
748
+ sig { params(min: T.untyped, max: T.untyped).returns(T::Boolean) }
749
+ def between?(min, max); end
750
+
751
+ # Returns true if the current object's time is in the past.
752
+ sig { returns(T::Boolean) }
753
+ def past?; end
754
+
755
+ # Returns true if the current object's time falls within
756
+ # the current day.
757
+ sig { returns(T::Boolean) }
758
+ def today?; end
759
+
760
+ # Returns true if the current object's time is in the future.
761
+ sig { returns(T::Boolean) }
762
+ def future?; end
763
+
764
+ # Returns `true` if `other` is equal to current object.
765
+ sig { params(other: T.untyped).returns(T::Boolean) }
766
+ def eql?(other); end
767
+
768
+ # Adds an interval of time to the current object's time and returns that
769
+ # value as a new TimeWithZone object.
770
+ #
771
+ # ```ruby
772
+ # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)'
773
+ # now = Time.zone.now # => Sun, 02 Nov 2014 01:26:28 EDT -04:00
774
+ # now + 1000 # => Sun, 02 Nov 2014 01:43:08 EDT -04:00
775
+ # ```
776
+ #
777
+ # If we're adding a Duration of variable length (i.e., years, months, days),
778
+ # move forward from #time, otherwise move forward from #utc, for accuracy
779
+ # when moving across DST boundaries.
780
+ #
781
+ # For instance, a time + 24.hours will advance exactly 24 hours, while a
782
+ # time + 1.day will advance 23-25 hours, depending on the day.
783
+ #
784
+ # ```ruby
785
+ # now + 24.hours # => Mon, 03 Nov 2014 00:26:28 EST -05:00
786
+ # now + 1.day # => Mon, 03 Nov 2014 01:26:28 EST -05:00
787
+ # ```
788
+ sig { params(other: T.untyped).returns(ActiveSupport::TimeWithZone) }
789
+ def +(other); end
790
+
791
+ # Subtracts an interval of time and returns a new TimeWithZone object unless
792
+ # the other value `acts_like?` time. Then it will return a Float of the difference
793
+ # between the two times that represents the difference between the current
794
+ # object's time and the `other` time.
795
+ #
796
+ # ```ruby
797
+ # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)'
798
+ # now = Time.zone.now # => Mon, 03 Nov 2014 00:26:28 EST -05:00
799
+ # now - 1000 # => Mon, 03 Nov 2014 00:09:48 EST -05:00
800
+ # ```
801
+ #
802
+ # If subtracting a Duration of variable length (i.e., years, months, days),
803
+ # move backward from #time, otherwise move backward from #utc, for accuracy
804
+ # when moving across DST boundaries.
805
+ #
806
+ # For instance, a time - 24.hours will go subtract exactly 24 hours, while a
807
+ # time - 1.day will subtract 23-25 hours, depending on the day.
808
+ #
809
+ # ```ruby
810
+ # now - 24.hours # => Sun, 02 Nov 2014 01:26:28 EDT -04:00
811
+ # now - 1.day # => Sun, 02 Nov 2014 00:26:28 EDT -04:00
812
+ # ```
813
+ #
814
+ # If both the TimeWithZone object and the other value act like Time, a Float
815
+ # will be returned.
816
+ #
817
+ # ```ruby
818
+ # Time.zone.now - 1.day.ago # => 86399.999967
819
+ # ```
820
+ sig { params(other: T.untyped).returns(T.any(ActiveSupport::TimeWithZone, Float)) }
821
+ def -(other); end
822
+
823
+ # Subtracts an interval of time from the current object's time and returns
824
+ # the result as a new TimeWithZone object.
825
+ #
826
+ # ```ruby
827
+ # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)'
828
+ # now = Time.zone.now # => Mon, 03 Nov 2014 00:26:28 EST -05:00
829
+ # now.ago(1000) # => Mon, 03 Nov 2014 00:09:48 EST -05:00
830
+ # ```
831
+ #
832
+ # If we're subtracting a Duration of variable length (i.e., years, months,
833
+ # days), move backward from #time, otherwise move backward from #utc, for
834
+ # accuracy when moving across DST boundaries.
835
+ #
836
+ # For instance, `time.ago(24.hours)` will move back exactly 24 hours,
837
+ # while `time.ago(1.day)` will move back 23-25 hours, depending on
838
+ # the day.
839
+ #
840
+ # ```ruby
841
+ # now.ago(24.hours) # => Sun, 02 Nov 2014 01:26:28 EDT -04:00
842
+ # now.ago(1.day) # => Sun, 02 Nov 2014 00:26:28 EDT -04:00
843
+ # ```
844
+ sig { params(other: T.any(Numeric, ActiveSupport::Duration)).returns(ActiveSupport::TimeWithZone) }
845
+ def ago(other); end
846
+
847
+ # Returns Array of parts of Time in sequence of
848
+ # [seconds, minutes, hours, day, month, year, weekday, yearday, dst?, zone].
849
+ #
850
+ # ```ruby
851
+ # now = Time.zone.now # => Tue, 18 Aug 2015 02:29:27 UTC +00:00
852
+ # now.to_a # => [27, 29, 2, 18, 8, 2015, 2, 230, false, "UTC"]
853
+ # ```
854
+ sig { returns([Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, T::Boolean, String]) }
855
+ def to_a; end
856
+
857
+ # Returns the object's date and time as a floating point number of seconds
858
+ # since the Epoch (January 1, 1970 00:00 UTC).
859
+ #
860
+ # ```ruby
861
+ # Time.zone.now.to_f # => 1417709320.285418
862
+ # ```
863
+ sig { returns(Float) }
864
+ def to_f; end
865
+
866
+ # Returns the object's date and time as an integer number of seconds
867
+ # since the Epoch (January 1, 1970 00:00 UTC).
868
+ #
869
+ # ```ruby
870
+ # Time.zone.now.to_i # => 1417709320
871
+ # ```
872
+ sig { returns(Integer) }
873
+ def to_i; end
874
+
875
+ # Returns the object's date and time as a rational number of seconds
876
+ # since the Epoch (January 1, 1970 00:00 UTC).
877
+ #
878
+ # ```ruby
879
+ # Time.zone.now.to_r # => (708854548642709/500000)
880
+ # ```
881
+ sig { returns(Rational) }
882
+ def to_r; end
883
+
884
+ sig { returns(Date) }
885
+ def to_date; end
886
+
887
+ # Returns an instance of DateTime with the timezone's UTC offset
888
+ #
889
+ # ```ruby
890
+ # Time.zone.now.to_datetime # => Tue, 18 Aug 2015 02:32:20 +0000
891
+ # Time.current.in_time_zone('Hawaii').to_datetime # => Mon, 17 Aug 2015 16:32:20 -1000
892
+ # ```
893
+ sig { returns(DateTime) }
894
+ def to_datetime; end
895
+
896
+ # Returns an instance of `Time`, either with the same UTC offset
897
+ # as `self` or in the local system timezone depending on the setting
898
+ # of `ActiveSupport.to_time_preserves_timezone`.
899
+ sig { returns(Time) }
900
+ def to_time; end
901
+
902
+ # Uses Date to provide precise Time calculations for years, months, and days according to the proleptic Gregorian calendar.
903
+ # The result is returned as a new `TimeWithZone` object.
904
+ # The options parameter takes a hash with any of these keys: :years, :months, :weeks, :days, :hours, :minutes, :seconds.
905
+ # If advancing by a value of variable length (i.e., years, weeks, months, days), move forward from `time`, otherwise move forward
906
+ # from utc, for accuracy when moving across DST boundaries.
907
+ sig { params(options: T::Hash[Symbol, T.any(Integer, Float)]).returns(ActiveSupport::TimeWithZone) }
908
+ def advance(options); end
909
+ end
910
+
911
+ # defines some of the methods at https://github.com/rails/rails/blob/v6.0.0/activesupport/lib/active_support/core_ext/date
912
+ # this is not a complete definition!
913
+ class Date
914
+ sig { params(options: T::Hash[Symbol, Integer]).returns(Date) }
915
+ def advance(options); end
916
+
917
+ # these are the sigs for Date- in the stdlib
918
+ # https://github.com/sorbet/sorbet/blob/3910f6cfd9935c9b42e2135e32e15ab8a6e5b9be/rbi/stdlib/date.rbi#L373
919
+ # note that if more sigs are added to sorbet you should replicate them here
920
+ # check sorbet master: https://github.com/sorbet/sorbet/blob/master/rbi/stdlib/date.rbi
921
+ sig {params(arg0: Numeric).returns(T.self_type)}
922
+ sig {params(arg0: Date).returns(Rational)}
923
+ # these sigs are added for activesupport users
924
+ sig {params(arg0: ActiveSupport::Duration).returns(T.self_type)}
925
+ def -(arg0); end
926
+ end
927
+
928
+ # defines some of the methods at https://github.com/rails/rails/blob/v6.0.0/activesupport/lib/active_support/core_ext/time
929
+ # this is not a complete definition!
930
+ class Time
931
+ sig { returns(Time) }
932
+ def midnight; end
933
+
934
+ sig { returns(Time) }
935
+ def beginning_of_day; end
936
+
937
+ sig { params(options: T::Hash[Symbol, Integer]).returns(Time) }
938
+ def advance(options); end
939
+
940
+ sig { returns(Time) }
941
+ def at_midnight; end
942
+
943
+ sig { returns(Time) }
944
+ def at_beginning_of_day; end
945
+
946
+ sig { returns(Time) }
947
+ def middle_of_day; end
948
+
949
+ sig { returns(Time) }
950
+ def midday; end
951
+
952
+ sig { returns(Time) }
953
+ def noon; end
954
+
955
+ sig { returns(Time) }
956
+ def at_midday; end
957
+
958
+ sig { returns(Time) }
959
+ def at_noon; end
960
+
961
+ sig { returns(Time) }
962
+ def at_middle_of_day; end
963
+
964
+ # https://github.com/rails/rails/blob/v6.0.0/activesupport/lib/active_support/core_ext/date_and_time/zones.rb
965
+ # returns Time in the case zone is passed nil and ActiveSupport::TimeWithZone otherwise
966
+ sig { params(zone: T.nilable(T.any(String, ActiveSupport::TimeZone))).returns(T.any(ActiveSupport::TimeWithZone, Time)) }
967
+ def in_time_zone(zone = ::Time.zone); end
968
+
969
+ # these are the sigs for Time- in the stdlib
970
+ # https://github.com/sorbet/sorbet/blob/c3691753e4ce545e1eb66cbd3e55de67d8879b98/rbi/core/time.rbi#L347
971
+ # note that if more sigs are added to sorbet you should replicate them here
972
+ # check sorbet master: https://github.com/sorbet/sorbet/blob/master/rbi/core/time.rbi#L347
973
+ sig do
974
+ params(
975
+ arg0: Time,
976
+ )
977
+ .returns(Float)
978
+ end
979
+ sig do
980
+ params(
981
+ arg0: Numeric,
982
+ )
983
+ .returns(Time)
984
+ end
985
+ # these sigs are added for activesupport users
986
+ sig { params(arg0: ActiveSupport::Duration).returns(Time) }
987
+ def -(arg0); end
988
+
989
+ # Returns the TimeZone for the current request, if this has been set (via Time.zone=).
990
+ # If `Time.zone` has not been set for the current request, returns the TimeZone specified in `config.time_zone`.
991
+ sig { returns(ActiveSupport::TimeZone) }
992
+ def self.zone; end
993
+
994
+ # Sets `Time.zone` to a TimeZone object for the current request/thread.
995
+ #
996
+ # This method accepts any of the following:
997
+ #
998
+ # * A Rails TimeZone object.
999
+ # * An identifier for a Rails TimeZone object (e.g., "Eastern Time (US & Canada)", `-5.hours`).
1000
+ # * A TZInfo::Timezone object.
1001
+ # * An identifier for a TZInfo::Timezone object (e.g., "America/New_York").
1002
+ #
1003
+ # Here's an example of how you might set `Time.zone` on a per request basis and reset it when the request is done.
1004
+ # `current_user.time_zone` just needs to return a string identifying the user's preferred time zone:
1005
+ #
1006
+ # ```ruby
1007
+ # class ApplicationController < ActionController::Base
1008
+ # around_action :set_time_zone
1009
+ #
1010
+ # def set_time_zone
1011
+ # if logged_in?
1012
+ # Time.use_zone(current_user.time_zone) { yield }
1013
+ # else
1014
+ # yield
1015
+ # end
1016
+ # end
1017
+ # end
1018
+ # ```
1019
+ sig { params(time_zone: T.any(String, TZInfo::Timezone, ActiveSupport::TimeZone, ActiveSupport::Duration)).void }
1020
+ def self.zone=(time_zone); end
1021
+ end
1022
+
1023
+ class ActiveSupport::TimeZone
1024
+ # Locate a specific time zone object. If the argument is a string, it
1025
+ # is interpreted to mean the name of the timezone to locate. If it is a
1026
+ # numeric value it is either the hour offset, or the second offset, of the
1027
+ # timezone to find. (The first one with that offset will be returned.)
1028
+ # Returns `nil` if no such time zone is known to the system.
1029
+ sig { params(arg: T.any(String, Numeric, ActiveSupport::Duration)).returns(T.nilable(ActiveSupport::TimeZone)) }
1030
+ def self.[](arg); end
1031
+
1032
+ # Returns an array of all TimeZone objects. There are multiple
1033
+ # TimeZone objects per time zone, in many cases, to make it easier
1034
+ # for users to find their own time zone.
1035
+ sig { returns(T::Array[ActiveSupport::TimeZone]) }
1036
+ def self.all; end
1037
+
1038
+ # A convenience method for returning a collection of TimeZone objects
1039
+ # for time zones in the USA.
1040
+ sig { returns(T::Array[ActiveSupport::TimeZone]) }
1041
+ def self.us_zones; end
1042
+
1043
+ # A convenience method for returning a collection of TimeZone objects
1044
+ # for time zones in the country specified by its ISO 3166-1 Alpha2 code.
1045
+ sig { params(country_code: T.any(String, Symbol)).returns(T::Array[ActiveSupport::TimeZone]) }
1046
+ def self.country_zones(country_code); end
1047
+
1048
+ # Returns an ActiveSupport::TimeWithZone instance representing the current
1049
+ # time in the time zone represented by `self`.
1050
+ #
1051
+ # ```ruby
1052
+ # Time.zone = 'Hawaii' # => "Hawaii"
1053
+ # Time.zone.now # => Wed, 23 Jan 2008 20:24:27 HST -10:00
1054
+ # ```
1055
+ sig { returns(ActiveSupport::TimeWithZone) }
1056
+ def now; end
1057
+
1058
+ # Returns the current date in this time zone.
1059
+ sig { returns(Date) }
1060
+ def today; end
1061
+
1062
+ # Returns the next date in this time zone.
1063
+ sig { returns(Date) }
1064
+ def tomorrow; end
1065
+
1066
+ # Returns the previous date in this time zone.
1067
+ sig { returns(Date) }
1068
+ def yesterday; end
1069
+
1070
+ # Method for creating new ActiveSupport::TimeWithZone instance in time zone
1071
+ # of `self` from given values.
1072
+ #
1073
+ # ```ruby
1074
+ # Time.zone = 'Hawaii' # => "Hawaii"
1075
+ # Time.zone.local(2007, 2, 1, 15, 30, 45) # => Thu, 01 Feb 2007 15:30:45 HST -10:00
1076
+ # ```
1077
+ sig { params(args: T.untyped).returns(ActiveSupport::TimeWithZone) }
1078
+ def local(*args); end
1079
+ end
1080
+
1081
+ # defines some of the methods at https://github.com/rails/rails/tree/v6.0.0/activesupport/lib/active_support/core_ext/hash
1082
+ # this is not a complete definition!
1083
+ class Hash
1084
+ sig { returns(T::Hash[String, T.untyped]) }
1085
+ def stringify_keys; end
1086
+
1087
+ sig { returns(T::Hash[String, T.untyped]) }
1088
+ def stringify_keys!; end
1089
+
1090
+ sig { returns(T::Hash[String, T.untyped]) }
1091
+ def deep_stringify_keys; end
1092
+
1093
+ sig { returns(T::Hash[String, T.untyped]) }
1094
+ def deep_stringify_keys!; end
1095
+
1096
+ sig { returns(T::Hash[Symbol, T.untyped]) }
1097
+ def symbolize_keys; end
1098
+
1099
+ sig { returns(T::Hash[Symbol, T.untyped]) }
1100
+ def symbolize_keys!; end
1101
+
1102
+ sig { returns(T::Hash[Symbol, T.untyped]) }
1103
+ def deep_symbolize_keys; end
1104
+
1105
+ sig { returns(T::Hash[Symbol, T.untyped]) }
1106
+ def deep_symbolize_keys!; end
1107
+
1108
+ # in an ideal world, `arg` would be the type of all keys, the 1st `T.untyped` would be
1109
+ # the type of keys your block returns, and the 2nd `T.untyped` would be the type of values
1110
+ # that the hash had.
1111
+ sig { params(block: T.proc.params(arg: T.untyped).void).returns(T::Hash[T.untyped, T.untyped]) }
1112
+ def deep_transform_keys(&block); end
1113
+
1114
+ sig { params(block: T.proc.params(arg: T.untyped).void).returns(T::Hash[T.untyped, T.untyped]) }
1115
+ def deep_transform_keys!(&block); end
1116
+
1117
+ sig { returns(T::Hash[Symbol, T.untyped]) }
1118
+ def to_options; end
1119
+ end
1120
+
1121
+ class Integer
1122
+ # Returns a Duration instance matching the number of months provided.
1123
+ #
1124
+ # ```ruby
1125
+ # 2.months # => 2 months
1126
+ # ```
1127
+ sig { returns(ActiveSupport::Duration) }
1128
+ def months; end
1129
+
1130
+ sig { returns(ActiveSupport::Duration) }
1131
+ def month; end
1132
+
1133
+ # Returns a Duration instance matching the number of years provided.
1134
+ #
1135
+ # ```ruby
1136
+ # 2.years # => 2 years
1137
+ # ```
1138
+ sig { returns(ActiveSupport::Duration) }
1139
+ def years; end
1140
+
1141
+ sig { returns(ActiveSupport::Duration) }
1142
+ def year; end
1143
+ end
1144
+
1145
+ class Numeric
1146
+ sig { returns(ActiveSupport::Duration) }
1147
+ def second; end
1148
+
1149
+ sig { returns(ActiveSupport::Duration) }
1150
+ def seconds; end
1151
+
1152
+ sig { returns(ActiveSupport::Duration) }
1153
+ def minute; end
1154
+
1155
+ sig { returns(ActiveSupport::Duration) }
1156
+ def minutes; end
1157
+
1158
+ sig { returns(ActiveSupport::Duration) }
1159
+ def hour; end
1160
+
1161
+ sig { returns(ActiveSupport::Duration) }
1162
+ def hours; end
1163
+
1164
+ sig { returns(ActiveSupport::Duration) }
1165
+ def day; end
1166
+
1167
+ sig { returns(ActiveSupport::Duration) }
1168
+ def days; end
1169
+
1170
+ sig { returns(ActiveSupport::Duration) }
1171
+ def week; end
1172
+
1173
+ sig { returns(ActiveSupport::Duration) }
1174
+ def weeks; end
1175
+
1176
+ sig { returns(ActiveSupport::Duration) }
1177
+ def fortnight; end
1178
+
1179
+ sig { returns(ActiveSupport::Duration) }
1180
+ def fortnights; end
1181
+
1182
+ sig { returns(T.self_type) }
1183
+ def in_milliseconds; end
1184
+
1185
+ KILOBYTE = T.let(1024, Integer)
1186
+ MEGABYTE = T.let(KILOBYTE * 1024, Integer)
1187
+ GIGABYTE = T.let(MEGABYTE * 1024, Integer)
1188
+ TERABYTE = T.let(GIGABYTE * 1024, Integer)
1189
+ PETABYTE = T.let(TERABYTE * 1024, Integer)
1190
+ EXABYTE = T.let(PETABYTE * 1024, Integer)
1191
+
1192
+ # Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes
1193
+ #
1194
+ # ```ruby
1195
+ # 2.bytes # => 2
1196
+ # ```
1197
+ sig { returns(T.self_type) }
1198
+ def byte; end
1199
+
1200
+ # Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes
1201
+ #
1202
+ # ```ruby
1203
+ # 2.bytes # => 2
1204
+ # ```
1205
+ sig { returns(T.self_type) }
1206
+ def bytes; end
1207
+
1208
+ # Returns the number of bytes equivalent to the kilobytes provided.
1209
+ #
1210
+ # ```ruby
1211
+ # 2.kilobytes # => 2048
1212
+ # ```
1213
+ sig { returns(T.self_type) }
1214
+ def kilobyte; end
1215
+
1216
+ # Returns the number of bytes equivalent to the kilobytes provided.
1217
+ #
1218
+ # ```ruby
1219
+ # 2.kilobytes # => 2048
1220
+ # ```
1221
+ sig { returns(T.self_type) }
1222
+ def kilobytes; end
1223
+
1224
+ # Returns the number of bytes equivalent to the megabytes provided.
1225
+ #
1226
+ # ```ruby
1227
+ # 2.megabytes # => 2_097_152
1228
+ # ```
1229
+ sig { returns(T.self_type) }
1230
+ def megabyte; end
1231
+
1232
+ # Returns the number of bytes equivalent to the megabytes provided.
1233
+ #
1234
+ # ```ruby
1235
+ # 2.megabytes # => 2_097_152
1236
+ # ```
1237
+ sig { returns(T.self_type) }
1238
+ def megabytes; end
1239
+
1240
+ # Returns the number of bytes equivalent to the gigabytes provided.
1241
+ #
1242
+ # ```ruby
1243
+ # 2.gigabytes # => 2_147_483_648
1244
+ # ```
1245
+ sig { returns(T.self_type) }
1246
+ def gigabyte; end
1247
+
1248
+ # Returns the number of bytes equivalent to the gigabytes provided.
1249
+ #
1250
+ # ```ruby
1251
+ # 2.gigabytes # => 2_147_483_648
1252
+ # ```
1253
+ sig { returns(T.self_type) }
1254
+ def gigabytes; end
1255
+
1256
+ # Returns the number of bytes equivalent to the terabytes provided.
1257
+ #
1258
+ # ```ruby
1259
+ # 2.terabytes # => 2_199_023_255_552
1260
+ # ```
1261
+ sig { returns(T.self_type) }
1262
+ def terabyte; end
1263
+
1264
+ # Returns the number of bytes equivalent to the terabytes provided.
1265
+ #
1266
+ # ```ruby
1267
+ # 2.terabytes # => 2_199_023_255_552
1268
+ # ```
1269
+ sig { returns(T.self_type) }
1270
+ def terabytes; end
1271
+
1272
+ # Returns the number of bytes equivalent to the petabytes provided.
1273
+ #
1274
+ # ```ruby
1275
+ # 2.petabytes # => 2_251_799_813_685_248
1276
+ # ```
1277
+ sig { returns(T.self_type) }
1278
+ def petabyte; end
1279
+
1280
+ # Returns the number of bytes equivalent to the petabytes provided.
1281
+ #
1282
+ # ```ruby
1283
+ # 2.petabytes # => 2_251_799_813_685_248
1284
+ # ```
1285
+ sig { returns(T.self_type) }
1286
+ def petabytes; end
1287
+
1288
+ # Returns the number of bytes equivalent to the exabytes provided.
1289
+ #
1290
+ # ```ruby
1291
+ # 2.exabytes # => 2_305_843_009_213_693_952
1292
+ # ```
1293
+ sig { returns(T.self_type) }
1294
+ def exabyte; end
1295
+
1296
+ # Returns the number of bytes equivalent to the exabytes provided.
1297
+ #
1298
+ # ```ruby
1299
+ # 2.exabytes # => 2_305_843_009_213_693_952
1300
+ # ```
1301
+ sig { returns(T.self_type) }
1302
+ def exabytes; end
1303
+ end
1304
+
1305
+ module Enumerable
1306
+ # https://github.com/rails/rails/blob/v5.2.3/activesupport/lib/active_support/core_ext/enumerable.rb#L64..L72
1307
+ # the case where a block isn't given isn't handled - that seems like an unlikely case
1308
+ sig do
1309
+ type_parameters(:key).params(
1310
+ block: T.proc.params(o: Enumerable::Elem).returns(T.type_parameter(:key))
1311
+ ).returns(
1312
+ T::Hash[T.type_parameter(:key), Enumerable::Elem]
1313
+ )
1314
+ end
1315
+ def index_by(&block); end
1316
+ end
1317
+
1318
+ class ActiveSupport::Duration
1319
+ # Returns the number of seconds that this Duration represents.
1320
+ #
1321
+ # ```ruby
1322
+ # 1.minute.to_i # => 60
1323
+ # 1.hour.to_i # => 3600
1324
+ # 1.day.to_i # => 86400
1325
+ # ```
1326
+ #
1327
+ # Note that this conversion makes some assumptions about the
1328
+ # duration of some periods, e.g. months are always 1/12 of year
1329
+ # and years are 365.2425 days:
1330
+ #
1331
+ # ```ruby
1332
+ # # equivalent to (1.year / 12).to_i
1333
+ # 1.month.to_i # => 2629746
1334
+ #
1335
+ # # equivalent to 365.2425.days.to_i
1336
+ # 1.year.to_i # => 31556952
1337
+ # ```
1338
+ #
1339
+ # In such cases, Ruby's core
1340
+ # [Date](https://ruby-doc.org/stdlib/libdoc/date/rdoc/Date.html) and
1341
+ # [Time](https://ruby-doc.org/stdlib/libdoc/time/rdoc/Time.html) should be used for precision
1342
+ # date and time arithmetic.
1343
+ sig { returns(Integer) }
1344
+ def to_i; end
1345
+
1346
+ sig { returns(Float) }
1347
+ def to_f; end
1348
+
1349
+ # Returns the amount of seconds a duration covers as a string.
1350
+ # For more information check to_i method.
1351
+ #
1352
+ # ```ruby
1353
+ # 1.day.to_s # => "86400"
1354
+ # ```
1355
+ sig { returns(String) }
1356
+ def to_s; end
1357
+
1358
+ # Creates a new Duration from string formatted according to ISO 8601 Duration.
1359
+ #
1360
+ # See [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information.
1361
+ # This method allows negative parts to be present in pattern.
1362
+ # If invalid string is provided, it will raise `ActiveSupport::Duration::ISO8601Parser::ParsingError`.
1363
+ sig { params(iso8601duration: String).returns(ActiveSupport::Duration) }
1364
+ def self.parse(iso8601duration); end
1365
+
1366
+ # Creates a new Duration from a seconds value that is converted
1367
+ # to the individual parts:
1368
+ #
1369
+ # ```ruby
1370
+ # ActiveSupport::Duration.build(31556952).parts # => {:years=>1}
1371
+ # ActiveSupport::Duration.build(2716146).parts # => {:months=>1, :days=>1}
1372
+ # ```
1373
+ sig { params(value: Numeric).returns(ActiveSupport::Duration) }
1374
+ def self.build(value); end
1375
+
1376
+ # Returns `true` if `other` is also a Duration instance, which has the
1377
+ # same parts as this one.
1378
+ sig { params(other: T.untyped).returns(T::Boolean) }
1379
+ def eql?(other); end
1380
+
1381
+ # Compares one Duration with another or a Numeric to this Duration.
1382
+ # Numeric values are treated as seconds.
1383
+ sig { params(other: T.any(ActiveSupport::Duration, Numeric)).returns(Integer) }
1384
+ def <=>(other); end
1385
+
1386
+ # Adds another Duration or a Numeric to this Duration. Numeric values
1387
+ # are treated as seconds.
1388
+ sig { params(other: T.any(ActiveSupport::Duration, Numeric)).returns(ActiveSupport::Duration) }
1389
+ def +(other); end
1390
+
1391
+ # Subtracts another Duration or a Numeric from this Duration. Numeric
1392
+ # values are treated as seconds.
1393
+ sig { params(other: T.any(ActiveSupport::Duration, Numeric)).returns(ActiveSupport::Duration) }
1394
+ def -(other); end
1395
+
1396
+ # Multiplies this Duration by a Numeric and returns a new Duration.
1397
+ sig { params(other: Numeric).returns(ActiveSupport::Duration) }
1398
+ def *(other); end
1399
+
1400
+ # Divides this Duration by a Numeric and returns a new Duration.
1401
+ sig { params(other: Numeric).returns(ActiveSupport::Duration) }
1402
+ def /(other); end
1403
+
1404
+ # Returns the modulo of this Duration by another Duration or Numeric.
1405
+ # Numeric values are treated as seconds.
1406
+ sig { params(other: T.any(ActiveSupport::Duration, Numeric)).returns(ActiveSupport::Duration) }
1407
+ def %(other); end
1408
+
1409
+ # Returns `true` if `other` is also a Duration instance with the
1410
+ # same `value`, or if `other == value`.
1411
+ sig { params(other: T.untyped).returns(T::Boolean) }
1412
+ def ==(other); end
1413
+
1414
+ # Build ISO 8601 Duration string for this duration.
1415
+ # The `precision` parameter can be used to limit seconds' precision of duration.
1416
+ sig { params(precision: T.nilable(Integer)).returns(String) }
1417
+ def iso8601(precision: nil); end
1418
+
1419
+ sig { params(time: T.any(ActiveSupport::TimeWithZone, Date)).returns(ActiveSupport::TimeWithZone) }
1420
+ def from_now(time = Time.current); end
1421
+
1422
+ sig { params(time: T.any(ActiveSupport::TimeWithZone, Date)).returns(ActiveSupport::TimeWithZone) }
1423
+ def ago(time = Time.current); end
1424
+ end
1425
+
1426
+ module Benchmark
1427
+ extend T::Sig
1428
+
1429
+ sig { params(block: T.proc.void).returns(Float) }
1430
+ def self.ms(&block); end
1431
+ end