rbs 3.6.1 → 3.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/comments.yml +2 -2
- data/.github/workflows/dependabot.yml +1 -1
- data/.github/workflows/ruby.yml +34 -10
- data/.github/workflows/windows.yml +20 -3
- data/.gitignore +1 -0
- data/.rubocop.yml +26 -1
- data/CHANGELOG.md +241 -0
- data/Rakefile +54 -4
- data/config.yml +317 -0
- data/core/array.rbs +1756 -1591
- data/core/basic_object.rbs +38 -35
- data/core/comparable.rbs +1 -1
- data/core/complex.rbs +166 -94
- data/core/data.rbs +2 -2
- data/core/dir.rbs +2 -18
- data/core/encoding.rbs +12 -32
- data/core/enumerable.rbs +270 -266
- data/core/enumerator.rbs +14 -4
- data/core/env.rbs +1 -1
- data/core/errno.rbs +33 -16
- data/core/errors.rbs +6 -2
- data/core/exception.rbs +342 -167
- data/core/fiber.rbs +3 -2
- data/core/file.rbs +26 -75
- data/core/float.rbs +125 -72
- data/core/gc.rbs +158 -42
- data/core/hash.rbs +122 -143
- data/core/integer.rbs +79 -50
- data/core/io/buffer.rbs +49 -43
- data/core/io.rbs +108 -151
- data/core/kernel.rbs +341 -209
- data/core/match_data.rbs +76 -2
- data/core/math.rbs +0 -36
- data/core/method.rbs +2 -2
- data/core/module.rbs +32 -27
- data/core/nil_class.rbs +2 -2
- data/core/numeric.rbs +101 -104
- data/core/object.rbs +1 -5
- data/core/object_space/weak_key_map.rbs +3 -4
- data/core/object_space.rbs +3 -3
- data/core/proc.rbs +82 -14
- data/core/process.rbs +110 -58
- data/core/ractor.rbs +57 -4
- data/core/range.rbs +114 -87
- data/core/rational.rbs +0 -2
- data/core/rbs/unnamed/argf.rbs +237 -36
- data/core/rbs/unnamed/env_class.rbs +35 -53
- data/core/rbs/unnamed/random.rbs +1 -2
- data/core/regexp.rbs +10 -56
- data/core/ruby_vm.rbs +88 -9
- data/core/rubygems/config_file.rbs +3 -0
- data/core/rubygems/errors.rbs +3 -6
- data/core/rubygems/platform.rbs +0 -9
- data/core/rubygems/rubygems.rbs +3 -6
- data/core/rubygems/version.rbs +8 -8
- data/core/set.rbs +4 -16
- data/core/string.rbs +271 -264
- data/core/struct.rbs +6 -18
- data/core/symbol.rbs +14 -21
- data/core/thread.rbs +32 -35
- data/core/time.rbs +131 -50
- data/core/trace_point.rbs +124 -113
- data/core/true_class.rbs +0 -1
- data/core/unbound_method.rbs +1 -1
- data/core/warning.rbs +9 -2
- data/docs/architecture.md +1 -1
- data/docs/syntax.md +17 -10
- data/ext/rbs_extension/extconf.rb +11 -0
- data/ext/rbs_extension/location.c +61 -29
- data/ext/rbs_extension/location.h +4 -3
- data/ext/rbs_extension/main.c +23 -1
- data/ext/rbs_extension/parser.c +506 -517
- data/ext/rbs_extension/parserstate.c +109 -30
- data/ext/rbs_extension/parserstate.h +6 -4
- data/ext/rbs_extension/rbs_extension.h +1 -10
- data/{ext/rbs_extension → include/rbs}/constants.h +21 -19
- data/include/rbs/ruby_objs.h +72 -0
- data/include/rbs/util/rbs_constant_pool.h +219 -0
- data/include/rbs.h +7 -0
- data/lib/rbs/annotate/annotations.rb +3 -3
- data/lib/rbs/annotate/rdoc_source.rb +2 -2
- data/lib/rbs/ast/declarations.rb +9 -4
- data/lib/rbs/ast/directives.rb +10 -0
- data/lib/rbs/ast/members.rb +2 -0
- data/lib/rbs/ast/type_param.rb +2 -12
- data/lib/rbs/cli/diff.rb +3 -3
- data/lib/rbs/cli/validate.rb +2 -1
- data/lib/rbs/cli.rb +16 -16
- data/lib/rbs/collection/config/lockfile_generator.rb +58 -8
- data/lib/rbs/collection/config.rb +5 -3
- data/lib/rbs/collection/sources/rubygems.rb +1 -1
- data/lib/rbs/collection.rb +1 -0
- data/lib/rbs/definition.rb +51 -34
- data/lib/rbs/definition_builder/ancestor_builder.rb +5 -3
- data/lib/rbs/definition_builder.rb +83 -24
- data/lib/rbs/environment.rb +33 -18
- data/lib/rbs/environment_loader.rb +6 -1
- data/lib/rbs/errors.rb +24 -0
- data/lib/rbs/locator.rb +2 -0
- data/lib/rbs/method_type.rb +2 -0
- data/lib/rbs/namespace.rb +1 -0
- data/lib/rbs/parser_aux.rb +40 -3
- data/lib/rbs/prototype/rb.rb +20 -12
- data/lib/rbs/prototype/rbi.rb +11 -6
- data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
- data/lib/rbs/prototype/runtime.rb +7 -5
- data/lib/rbs/subtractor.rb +3 -3
- data/lib/rbs/test/hook.rb +47 -42
- data/lib/rbs/test/type_check.rb +7 -5
- data/lib/rbs/type_name.rb +14 -9
- data/lib/rbs/types.rb +63 -14
- data/lib/rbs/unit_test/spy.rb +4 -2
- data/lib/rbs/unit_test/type_assertions.rb +19 -13
- data/lib/rbs/unit_test/with_aliases.rb +3 -1
- data/lib/rbs/validator.rb +7 -1
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +10 -5
- data/lib/rbs.rb +1 -0
- data/lib/rdoc_plugin/parser.rb +2 -2
- data/rbs.gemspec +6 -2
- data/sig/ancestor_graph.rbs +5 -5
- data/sig/annotate/rdoc_source.rbs +2 -0
- data/sig/cli.rbs +2 -0
- data/sig/collection/config/lockfile_generator.rbs +9 -1
- data/sig/declarations.rbs +10 -3
- data/sig/definition.rbs +80 -12
- data/sig/definition_builder.rbs +18 -4
- data/sig/directives.rbs +17 -1
- data/sig/environment.rbs +3 -1
- data/sig/errors.rbs +19 -0
- data/sig/namespace.rbs +2 -3
- data/sig/parser.rbs +5 -1
- data/sig/prototype/rb.rbs +1 -1
- data/sig/resolver/constant_resolver.rbs +2 -2
- data/sig/resolver/context.rbs +1 -1
- data/sig/subtractor.rbs +1 -1
- data/sig/test/type_check.rbs +2 -2
- data/sig/type_alias_dependency.rbs +2 -2
- data/sig/type_alias_regularity.rbs +6 -6
- data/sig/type_param.rbs +4 -4
- data/sig/typename.rbs +8 -5
- data/sig/types.rbs +1 -1
- data/sig/unit_test/spy.rbs +2 -0
- data/sig/unit_test/type_assertions.rbs +2 -0
- data/sig/use_map.rbs +1 -1
- data/sig/validator.rbs +6 -2
- data/sig/vendorer.rbs +1 -1
- data/sig/writer.rbs +1 -1
- data/{ext/rbs_extension → src}/constants.c +35 -36
- data/src/ruby_objs.c +799 -0
- data/src/util/rbs_constant_pool.c +342 -0
- data/stdlib/base64/0/base64.rbs +0 -9
- data/stdlib/benchmark/0/benchmark.rbs +11 -2
- data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
- data/stdlib/cgi/0/core.rbs +60 -3
- data/stdlib/cgi/0/manifest.yaml +1 -0
- data/stdlib/coverage/0/coverage.rbs +0 -3
- data/stdlib/csv/0/csv.rbs +18 -58
- data/stdlib/csv/0/manifest.yaml +1 -0
- data/stdlib/date/0/date.rbs +27 -42
- data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -6
- data/stdlib/digest/0/digest.rbs +25 -2
- data/stdlib/erb/0/erb.rbs +0 -1
- data/stdlib/etc/0/etc.rbs +51 -34
- data/stdlib/fileutils/0/fileutils.rbs +3 -44
- data/stdlib/io-console/0/io-console.rbs +69 -15
- data/stdlib/ipaddr/0/ipaddr.rbs +16 -4
- data/stdlib/json/0/json.rbs +107 -120
- data/stdlib/logger/0/log_device.rbs +1 -1
- data/stdlib/logger/0/logger.rbs +3 -18
- data/stdlib/minitest/0/kernel.rbs +2 -2
- data/stdlib/minitest/0/minitest/abstract_reporter.rbs +4 -1
- data/stdlib/minitest/0/minitest/assertion.rbs +1 -0
- data/stdlib/minitest/0/minitest/assertions.rbs +58 -13
- data/stdlib/minitest/0/minitest/backtrace_filter.rbs +7 -0
- data/stdlib/minitest/0/minitest/bench_spec.rbs +8 -8
- data/stdlib/minitest/0/minitest/benchmark.rbs +17 -16
- data/stdlib/minitest/0/minitest/compress.rbs +13 -0
- data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
- data/stdlib/minitest/0/minitest/mock.rbs +9 -5
- data/stdlib/minitest/0/minitest/parallel/executor.rbs +4 -0
- data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +0 -1
- data/stdlib/minitest/0/minitest/pride_io.rbs +8 -0
- data/stdlib/minitest/0/minitest/pride_lol.rbs +2 -0
- data/stdlib/minitest/0/minitest/progress_reporter.rbs +1 -1
- data/stdlib/minitest/0/minitest/reportable.rbs +2 -0
- data/stdlib/minitest/0/minitest/runnable.rbs +33 -1
- data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +1 -1
- data/stdlib/minitest/0/minitest/spec/dsl.rbs +10 -6
- data/stdlib/minitest/0/minitest/spec.rbs +1 -1
- data/stdlib/minitest/0/minitest/statistics_reporter.rbs +5 -0
- data/stdlib/minitest/0/minitest/summary_reporter.rbs +0 -7
- data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +1 -1
- data/stdlib/minitest/0/minitest/test.rbs +7 -14
- data/stdlib/minitest/0/minitest/unexpected_error.rbs +2 -0
- data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
- data/stdlib/minitest/0/minitest/unit.rbs +1 -2
- data/stdlib/minitest/0/minitest.rbs +41 -892
- data/stdlib/monitor/0/monitor.rbs +13 -4
- data/stdlib/net-http/0/net-http.rbs +42 -109
- data/stdlib/nkf/0/nkf.rbs +30 -0
- data/stdlib/objspace/0/objspace.rbs +1 -2
- data/stdlib/observable/0/observable.rbs +1 -1
- data/stdlib/open-uri/0/manifest.yaml +1 -0
- data/stdlib/open-uri/0/open-uri.rbs +52 -0
- data/stdlib/open3/0/open3.rbs +0 -8
- data/stdlib/openssl/0/manifest.yaml +1 -0
- data/stdlib/openssl/0/openssl.rbs +235 -143
- data/stdlib/optparse/0/optparse.rbs +58 -18
- data/stdlib/pathname/0/pathname.rbs +2 -8
- data/stdlib/pp/0/pp.rbs +3 -1
- data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
- data/stdlib/pstore/0/pstore.rbs +0 -6
- data/stdlib/psych/0/core_ext.rbs +12 -0
- data/stdlib/psych/0/psych.rbs +15 -4
- data/stdlib/pty/0/pty.rbs +46 -4
- data/stdlib/rdoc/0/code_object.rbs +0 -4
- data/stdlib/rdoc/0/markup.rbs +10 -12
- data/stdlib/rdoc/0/rdoc.rbs +13 -8
- data/stdlib/resolv/0/resolv.rbs +21 -12
- data/stdlib/ripper/0/ripper.rbs +0 -2
- data/stdlib/securerandom/0/securerandom.rbs +7 -2
- data/stdlib/shellwords/0/shellwords.rbs +11 -12
- data/stdlib/singleton/0/singleton.rbs +0 -1
- data/stdlib/socket/0/addrinfo.rbs +1 -2
- data/stdlib/socket/0/basic_socket.rbs +0 -5
- data/stdlib/socket/0/socket.rbs +32 -27
- data/stdlib/socket/0/tcp_server.rbs +0 -3
- data/stdlib/socket/0/tcp_socket.rbs +36 -3
- data/stdlib/socket/0/udp_socket.rbs +0 -1
- data/stdlib/socket/0/unix_server.rbs +0 -3
- data/stdlib/socket/0/unix_socket.rbs +4 -2
- data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +1 -1
- data/stdlib/strscan/0/string_scanner.rbs +1265 -422
- data/stdlib/tempfile/0/tempfile.rbs +135 -28
- data/stdlib/time/0/time.rbs +48 -35
- data/stdlib/timeout/0/timeout.rbs +11 -8
- data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
- data/stdlib/tsort/0/tsort.rbs +0 -4
- data/stdlib/uri/0/common.rbs +28 -30
- data/stdlib/uri/0/ftp.rbs +1 -1
- data/stdlib/uri/0/generic.rbs +22 -18
- data/stdlib/uri/0/http.rbs +2 -2
- data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
- data/stdlib/zlib/0/buf_error.rbs +1 -70
- data/stdlib/zlib/0/data_error.rbs +1 -70
- data/stdlib/zlib/0/deflate.rbs +8 -72
- data/stdlib/zlib/0/error.rbs +1 -70
- data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
- data/stdlib/zlib/0/gzip_file.rbs +1 -71
- data/stdlib/zlib/0/gzip_reader.rbs +3 -74
- data/stdlib/zlib/0/gzip_writer.rbs +1 -70
- data/stdlib/zlib/0/inflate.rbs +4 -71
- data/stdlib/zlib/0/mem_error.rbs +1 -70
- data/stdlib/zlib/0/need_dict.rbs +1 -70
- data/stdlib/zlib/0/stream_end.rbs +1 -70
- data/stdlib/zlib/0/stream_error.rbs +1 -70
- data/stdlib/zlib/0/version_error.rbs +1 -70
- data/stdlib/zlib/0/zlib.rbs +0 -2
- data/stdlib/zlib/0/zstream.rbs +4 -72
- metadata +17 -13
- data/ext/rbs_extension/ruby_objs.c +0 -602
- data/ext/rbs_extension/ruby_objs.h +0 -51
- data/stdlib/minitest/0/manifest.yaml +0 -2
data/core/time.rbs
CHANGED
@@ -45,6 +45,42 @@
|
|
45
45
|
# A `Time` object derived from the system clock (for example, by method
|
46
46
|
# Time.now) has the resolution supported by the system.
|
47
47
|
#
|
48
|
+
# ## Time Internal Representation
|
49
|
+
#
|
50
|
+
# Time implementation uses a signed 63 bit integer, Integer, or Rational. It is
|
51
|
+
# a number of nanoseconds since the *Epoch*. The signed 63 bit integer can
|
52
|
+
# represent 1823-11-12 to 2116-02-20. When Integer or Rational is used (before
|
53
|
+
# 1823, after 2116, under nanosecond), Time works slower than when the signed 63
|
54
|
+
# bit integer is used.
|
55
|
+
#
|
56
|
+
# Ruby uses the C function `localtime` and `gmtime` to map between the number
|
57
|
+
# and 6-tuple (year,month,day,hour,minute,second). `localtime` is used for local
|
58
|
+
# time and "gmtime" is used for UTC.
|
59
|
+
#
|
60
|
+
# Integer and Rational has no range limit, but the localtime and gmtime has
|
61
|
+
# range limits due to the C types `time_t` and `struct tm`. If that limit is
|
62
|
+
# exceeded, Ruby extrapolates the localtime function.
|
63
|
+
#
|
64
|
+
# The Time class always uses the Gregorian calendar. I.e. the proleptic
|
65
|
+
# Gregorian calendar is used. Other calendars, such as Julian calendar, are not
|
66
|
+
# supported.
|
67
|
+
#
|
68
|
+
# `time_t` can represent 1901-12-14 to 2038-01-19 if it is 32 bit signed
|
69
|
+
# integer, -292277022657-01-27 to 292277026596-12-05 if it is 64 bit signed
|
70
|
+
# integer. However `localtime` on some platforms doesn't supports negative
|
71
|
+
# `time_t` (before 1970).
|
72
|
+
#
|
73
|
+
# `struct tm` has *tm_year* member to represent years. (`tm_year = 0` means the
|
74
|
+
# year 1900.) It is defined as `int` in the C standard. *tm_year* can represent
|
75
|
+
# between -2147481748 to 2147485547 if `int` is 32 bit.
|
76
|
+
#
|
77
|
+
# Ruby supports leap seconds as far as if the C function `localtime` and
|
78
|
+
# `gmtime` supports it. They use the tz database in most Unix systems. The tz
|
79
|
+
# database has timezones which supports leap seconds. For example, "Asia/Tokyo"
|
80
|
+
# doesn't support leap seconds but "right/Asia/Tokyo" supports leap seconds. So,
|
81
|
+
# Ruby supports leap seconds if the TZ environment variable is set to
|
82
|
+
# "right/Asia/Tokyo" in most Unix systems.
|
83
|
+
#
|
48
84
|
# ## Examples
|
49
85
|
#
|
50
86
|
# All of these examples were done using the EST timezone which is GMT-5.
|
@@ -127,16 +163,14 @@
|
|
127
163
|
# * Inherits from [class Object](rdoc-ref:Object@What-27s+Here).
|
128
164
|
# * Includes [module Comparable](rdoc-ref:Comparable@What-27s+Here).
|
129
165
|
#
|
130
|
-
#
|
131
166
|
# Here, class `Time` provides methods that are useful for:
|
132
167
|
#
|
133
|
-
# *
|
134
|
-
# *
|
135
|
-
# *
|
136
|
-
# *
|
137
|
-
# *
|
138
|
-
# *
|
139
|
-
#
|
168
|
+
# * [Creating Time objects](rdoc-ref:Time@Methods+for+Creating).
|
169
|
+
# * [Fetching Time values](rdoc-ref:Time@Methods+for+Fetching).
|
170
|
+
# * [Querying a Time object](rdoc-ref:Time@Methods+for+Querying).
|
171
|
+
# * [Comparing Time objects](rdoc-ref:Time@Methods+for+Comparing).
|
172
|
+
# * [Converting a Time object](rdoc-ref:Time@Methods+for+Converting).
|
173
|
+
# * [Rounding a Time](rdoc-ref:Time@Methods+for+Rounding).
|
140
174
|
#
|
141
175
|
# ### Methods for Creating
|
142
176
|
#
|
@@ -150,7 +184,6 @@
|
|
150
184
|
# * #+ (plus): Returns a new time increased by the given number of seconds.
|
151
185
|
# * #- (minus): Returns a new time decreased by the given number of seconds.
|
152
186
|
#
|
153
|
-
#
|
154
187
|
# ### Methods for Fetching
|
155
188
|
#
|
156
189
|
# * #year: Returns the year of the time.
|
@@ -175,7 +208,6 @@
|
|
175
208
|
# * #to_r: Returns the Rational number of seconds since epoch for the time.
|
176
209
|
# * #zone: Returns a string representation of the timezone of the time.
|
177
210
|
#
|
178
|
-
#
|
179
211
|
# ### Methods for Querying
|
180
212
|
#
|
181
213
|
# * #utc? (aliased as #gmt?): Returns whether the time is UTC.
|
@@ -189,13 +221,11 @@
|
|
189
221
|
# * #friday?: Returns whether time is a Friday.
|
190
222
|
# * #saturday?: Returns whether the time is a Saturday.
|
191
223
|
#
|
192
|
-
#
|
193
224
|
# ### Methods for Comparing
|
194
225
|
#
|
195
226
|
# * #<=>: Compares `self` to another time.
|
196
227
|
# * #eql?: Returns whether the time is equal to another time.
|
197
228
|
#
|
198
|
-
#
|
199
229
|
# ### Methods for Converting
|
200
230
|
#
|
201
231
|
# * #asctime (aliased as #ctime): Returns the time as a string.
|
@@ -210,14 +240,12 @@
|
|
210
240
|
# * #deconstruct_keys: Returns a hash of time components used in
|
211
241
|
# pattern-matching.
|
212
242
|
#
|
213
|
-
#
|
214
243
|
# ### Methods for Rounding
|
215
244
|
#
|
216
245
|
# * #round:Returns a new time with subseconds rounded.
|
217
246
|
# * #ceil: Returns a new time with subseconds raised to a ceiling.
|
218
247
|
# * #floor: Returns a new time with subseconds lowered to a floor.
|
219
248
|
#
|
220
|
-
#
|
221
249
|
# For the forms of argument `zone`, see [Timezone
|
222
250
|
# Specifiers](rdoc-ref:Time@Timezone+Specifiers).
|
223
251
|
#
|
@@ -231,7 +259,6 @@
|
|
231
259
|
# * Time#getlocal: positional argument `zone`.
|
232
260
|
# * Time#localtime: positional argument `zone`.
|
233
261
|
#
|
234
|
-
#
|
235
262
|
# The value given with any of these must be one of the following (each detailed
|
236
263
|
# below):
|
237
264
|
#
|
@@ -241,7 +268,6 @@
|
|
241
268
|
# * [Timezone object](rdoc-ref:Time@Timezone+Objects).
|
242
269
|
# * [Timezone name](rdoc-ref:Time@Timezone+Names).
|
243
270
|
#
|
244
|
-
#
|
245
271
|
# ### Hours/Minutes Offsets
|
246
272
|
#
|
247
273
|
# The zone value may be a string offset from UTC in the form `'+HH:MM'` or
|
@@ -250,7 +276,6 @@
|
|
250
276
|
# * `HH` is the 2-digit hour in the range `0..23`.
|
251
277
|
# * `MM` is the 2-digit minute in the range `0..59`.
|
252
278
|
#
|
253
|
-
#
|
254
279
|
# Examples:
|
255
280
|
#
|
256
281
|
# t = Time.utc(2000, 1, 1, 20, 15, 1) # => 2000-01-01 20:15:01 UTC
|
@@ -289,22 +314,33 @@
|
|
289
314
|
#
|
290
315
|
# * `local_to_utc`:
|
291
316
|
#
|
292
|
-
#
|
293
|
-
#
|
294
|
-
#
|
295
|
-
#
|
296
|
-
#
|
317
|
+
# Called when Time.new is invoked with `tz` as the value of positional
|
318
|
+
# argument `zone` or keyword argument `in:`.
|
319
|
+
#
|
320
|
+
# Argument
|
321
|
+
# : a [Time-like object](rdoc-ref:Time@Time-Like+Objects).
|
322
|
+
#
|
323
|
+
# Returns
|
324
|
+
# : a [Time-like object](rdoc-ref:Time@Time-Like+Objects) in the UTC
|
325
|
+
# timezone.
|
297
326
|
#
|
298
327
|
#
|
299
328
|
# * `utc_to_local`:
|
300
329
|
#
|
301
|
-
#
|
302
|
-
#
|
303
|
-
#
|
304
|
-
#
|
305
|
-
#
|
306
|
-
#
|
330
|
+
# Called when Time.at or Time.now is invoked with `tz` as the value for
|
331
|
+
# keyword argument `in:`, and when Time#getlocal or Time#localtime is called
|
332
|
+
# with `tz` as the value for positional argument `zone`.
|
333
|
+
#
|
334
|
+
# The UTC offset will be calculated as the difference between the original
|
335
|
+
# time and the returned object as an `Integer`. If the object is in fixed
|
336
|
+
# offset, its `utc_offset` is also counted.
|
337
|
+
#
|
338
|
+
# Argument
|
339
|
+
# : a [Time-like object](rdoc-ref:Time@Time-Like+Objects).
|
307
340
|
#
|
341
|
+
# Returns
|
342
|
+
# : a [Time-like object](rdoc-ref:Time@Time-Like+Objects) in the local
|
343
|
+
# timezone.
|
308
344
|
#
|
309
345
|
#
|
310
346
|
# A custom timezone class may have these instance methods, which will be called
|
@@ -312,26 +348,37 @@
|
|
312
348
|
#
|
313
349
|
# * `abbr`:
|
314
350
|
#
|
315
|
-
#
|
316
|
-
#
|
317
|
-
#
|
351
|
+
# Called when Time#strftime is invoked with a format involving `%Z`.
|
352
|
+
#
|
353
|
+
# Argument
|
354
|
+
# : a [Time-like object](rdoc-ref:Time@Time-Like+Objects).
|
355
|
+
#
|
356
|
+
# Returns
|
357
|
+
# : a string abbreviation for the timezone name.
|
318
358
|
#
|
319
359
|
#
|
320
360
|
# * `dst?`:
|
321
361
|
#
|
322
|
-
#
|
323
|
-
#
|
324
|
-
#
|
325
|
-
#
|
326
|
-
#
|
362
|
+
# Called when Time.at or Time.now is invoked with `tz` as the value for
|
363
|
+
# keyword argument `in:`, and when Time#getlocal or Time#localtime is called
|
364
|
+
# with `tz` as the value for positional argument `zone`.
|
365
|
+
#
|
366
|
+
# Argument
|
367
|
+
# : a [Time-like object](rdoc-ref:Time@Time-Like+Objects).
|
368
|
+
#
|
369
|
+
# Returns
|
370
|
+
# : whether the time is daylight saving time.
|
327
371
|
#
|
328
372
|
#
|
329
373
|
# * `name`:
|
330
374
|
#
|
331
|
-
#
|
332
|
-
#
|
333
|
-
#
|
375
|
+
# Called when `Marshal.dump(t)` is invoked
|
376
|
+
#
|
377
|
+
# Argument
|
378
|
+
# : none.
|
334
379
|
#
|
380
|
+
# Returns
|
381
|
+
# : the string name of the timezone.
|
335
382
|
#
|
336
383
|
#
|
337
384
|
# #### `Time`-Like Objects
|
@@ -358,7 +405,6 @@
|
|
358
405
|
# * `isdst`
|
359
406
|
# * `to_i`
|
360
407
|
#
|
361
|
-
#
|
362
408
|
# For a returned `Integer`, its components, decomposed in UTC, are interpreted
|
363
409
|
# as times in the specified timezone.
|
364
410
|
#
|
@@ -424,7 +470,6 @@ class Time < Object
|
|
424
470
|
# * A numeric number of [Epoch seconds](rdoc-ref:Time@Epoch+Seconds) for the
|
425
471
|
# returned time.
|
426
472
|
#
|
427
|
-
#
|
428
473
|
# Examples:
|
429
474
|
#
|
430
475
|
# t = Time.new(2000, 12, 31, 23, 59, 59) # => 2000-12-31 23:59:59 -0600
|
@@ -460,7 +505,6 @@ class Time < Object
|
|
460
505
|
# Time.at(secs, 1000000000, :nanosecond) # => 2001-01-01 00:00:00 -0600
|
461
506
|
# Time.at(secs, -1000000000, :nanosecond) # => 2000-12-31 23:59:58 -0600
|
462
507
|
#
|
463
|
-
#
|
464
508
|
# Optional keyword argument `in: zone` specifies the timezone for the returned
|
465
509
|
# time:
|
466
510
|
#
|
@@ -527,7 +571,6 @@ class Time < Object
|
|
527
571
|
# Time.utc(2000, 1, 1, 0, 0, 0, 0) # => 2000-01-01 00:00:00 UTC
|
528
572
|
# Time.utc(2000, 1, 1, 0, 0, 0, 999999) # => 2000-01-01 00:00:00.999999 UTC
|
529
573
|
#
|
530
|
-
#
|
531
574
|
# The values may be:
|
532
575
|
#
|
533
576
|
# * Integers, as above.
|
@@ -542,7 +585,6 @@ class Time < Object
|
|
542
585
|
# # => ["0", "1", "1", "0", "0", "0", "0", "0"]
|
543
586
|
# Time.utc(*a) # => 0000-01-01 00:00:00 UTC
|
544
587
|
#
|
545
|
-
#
|
546
588
|
# When exactly ten arguments are given, the arguments are interpreted as in the
|
547
589
|
# second calling sequence above:
|
548
590
|
#
|
@@ -659,7 +701,6 @@ class Time < Object
|
|
659
701
|
# Time.utc(2000, 1, 1, 0, 0, 0, 0) # => 2000-01-01 00:00:00 UTC
|
660
702
|
# Time.utc(2000, 1, 1, 0, 0, 0, 999999) # => 2000-01-01 00:00:00.999999 UTC
|
661
703
|
#
|
662
|
-
#
|
663
704
|
# The values may be:
|
664
705
|
#
|
665
706
|
# * Integers, as above.
|
@@ -674,7 +715,6 @@ class Time < Object
|
|
674
715
|
# # => ["0", "1", "1", "0", "0", "0", "0", "0"]
|
675
716
|
# Time.utc(*a) # => 0000-01-01 00:00:00 UTC
|
676
717
|
#
|
677
|
-
#
|
678
718
|
# When exactly ten arguments are given, the arguments are interpreted as in the
|
679
719
|
# second calling sequence above:
|
680
720
|
#
|
@@ -756,7 +796,6 @@ class Time < Object
|
|
756
796
|
# * `1`, if `self` is greater then `other_time`.
|
757
797
|
# * `nil`, if `self` and `other_time` are incomparable.
|
758
798
|
#
|
759
|
-
#
|
760
799
|
# Examples:
|
761
800
|
#
|
762
801
|
# t = Time.now # => 2007-11-19 08:12:12 -0600
|
@@ -1066,7 +1105,6 @@ class Time < Object
|
|
1066
1105
|
# Time.new(2000, 1, 1, 0, 0, 59.5) # => 2000-12-31 23:59:59.5 +0900
|
1067
1106
|
# Time.new(2000, 1, 1, 0, 0, 59.7r) # => 2000-12-31 23:59:59.7 +0900
|
1068
1107
|
#
|
1069
|
-
#
|
1070
1108
|
# These values may be:
|
1071
1109
|
#
|
1072
1110
|
# * Integers, as above.
|
@@ -1081,7 +1119,6 @@ class Time < Object
|
|
1081
1119
|
# # => ["0", "1", "1", "0", "0", "0"]
|
1082
1120
|
# Time.new(*a) # => 0000-01-01 00:00:00 -0600
|
1083
1121
|
#
|
1084
|
-
#
|
1085
1122
|
# When positional argument `zone` or keyword argument `in:` is given, the new
|
1086
1123
|
# `Time` object is in the specified timezone. For the forms of argument `zone`,
|
1087
1124
|
# see [Timezone Specifiers](rdoc-ref:Time@Timezone+Specifiers):
|
@@ -1138,6 +1175,25 @@ class Time < Object
|
|
1138
1175
|
#
|
1139
1176
|
def isdst: () -> bool
|
1140
1177
|
|
1178
|
+
# <!-- rdoc-file=lib/time.rb -->
|
1179
|
+
# Parses `time` as a dateTime defined by the XML Schema and converts it to a
|
1180
|
+
# Time object. The format is a restricted version of the format defined by ISO
|
1181
|
+
# 8601.
|
1182
|
+
#
|
1183
|
+
# ArgumentError is raised if `time` is not compliant with the format or if the
|
1184
|
+
# Time class cannot represent the specified time.
|
1185
|
+
#
|
1186
|
+
# See #xmlschema for more information on this format.
|
1187
|
+
#
|
1188
|
+
# require 'time'
|
1189
|
+
#
|
1190
|
+
# Time.xmlschema("2011-10-05T22:26:12-04:00")
|
1191
|
+
# #=> 2011-10-05 22:26:12-04:00
|
1192
|
+
#
|
1193
|
+
# You must require 'time' to use this method.
|
1194
|
+
#
|
1195
|
+
alias iso8601 xmlschema
|
1196
|
+
|
1141
1197
|
# <!--
|
1142
1198
|
# rdoc-file=time.c
|
1143
1199
|
# - localtime -> self or new_time
|
@@ -1151,7 +1207,6 @@ class Time < Object
|
|
1151
1207
|
# t = Time.utc(2000, 1, 1, 20, 15, 1) # => 2000-01-01 20:15:01 UTC
|
1152
1208
|
# t.localtime # => 2000-01-01 14:15:01 -0600
|
1153
1209
|
#
|
1154
|
-
#
|
1155
1210
|
# With argument `zone` given, returns the new `Time` object created by
|
1156
1211
|
# converting `self` to the given time zone:
|
1157
1212
|
#
|
@@ -1550,6 +1605,32 @@ class Time < Object
|
|
1550
1605
|
#
|
1551
1606
|
def wednesday?: () -> bool
|
1552
1607
|
|
1608
|
+
# <!--
|
1609
|
+
# rdoc-file=lib/time.rb
|
1610
|
+
# - xmlschema(fraction_digits=0)
|
1611
|
+
# -->
|
1612
|
+
# Returns a string which represents the time as a dateTime defined by XML
|
1613
|
+
# Schema:
|
1614
|
+
#
|
1615
|
+
# CCYY-MM-DDThh:mm:ssTZD
|
1616
|
+
# CCYY-MM-DDThh:mm:ss.sssTZD
|
1617
|
+
#
|
1618
|
+
# where TZD is Z or [+-]hh:mm.
|
1619
|
+
#
|
1620
|
+
# If self is a UTC time, Z is used as TZD. [+-]hh:mm is used otherwise.
|
1621
|
+
#
|
1622
|
+
# `fraction_digits` specifies a number of digits to use for fractional seconds.
|
1623
|
+
# Its default value is 0.
|
1624
|
+
#
|
1625
|
+
# require 'time'
|
1626
|
+
#
|
1627
|
+
# t = Time.now
|
1628
|
+
# t.iso8601 # => "2011-10-05T22:26:12-04:00"
|
1629
|
+
#
|
1630
|
+
# You must require 'time' to use this method.
|
1631
|
+
#
|
1632
|
+
def xmlschema: (?Integer fraction_digits) -> String
|
1633
|
+
|
1553
1634
|
# <!--
|
1554
1635
|
# rdoc-file=time.c
|
1555
1636
|
# - yday -> integer
|