rbs 3.10.4 → 4.0.0
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/dependabot.yml +14 -14
- data/.github/workflows/bundle-update.yml +60 -0
- data/.github/workflows/c-check.yml +7 -5
- data/.github/workflows/comments.yml +2 -2
- data/.github/workflows/dependabot.yml +2 -2
- data/.github/workflows/ruby.yml +16 -26
- data/.github/workflows/rust.yml +95 -0
- data/.github/workflows/typecheck.yml +1 -1
- data/.github/workflows/windows.yml +2 -2
- data/.rubocop.yml +2 -2
- data/.vscode/extensions.json +5 -0
- data/.vscode/settings.json +19 -0
- data/CHANGELOG.md +202 -2
- data/Rakefile +9 -23
- data/Steepfile +2 -0
- data/config.yml +457 -13
- data/core/array.rbs +218 -188
- data/core/basic_object.rbs +9 -8
- data/core/binding.rbs +0 -2
- data/core/builtin.rbs +2 -2
- data/core/class.rbs +6 -5
- data/core/comparable.rbs +45 -31
- data/core/complex.rbs +66 -55
- data/core/dir.rbs +57 -45
- data/core/encoding.rbs +6 -6
- data/core/enumerable.rbs +105 -91
- data/core/enumerator/arithmetic_sequence.rbs +70 -0
- data/core/enumerator.rbs +24 -3
- data/core/errno.rbs +3 -2
- data/core/errors.rbs +31 -29
- data/core/exception.rbs +12 -12
- data/core/fiber.rbs +47 -36
- data/core/file.rbs +242 -169
- data/core/file_test.rbs +2 -2
- data/core/float.rbs +42 -68
- data/core/gc.rbs +78 -70
- data/core/hash.rbs +70 -60
- data/core/integer.rbs +32 -75
- data/core/io/buffer.rbs +36 -36
- data/core/io/wait.rbs +7 -7
- data/core/io.rbs +192 -146
- data/core/kernel.rbs +198 -147
- data/core/marshal.rbs +3 -3
- data/core/match_data.rbs +14 -12
- data/core/math.rbs +69 -67
- data/core/method.rbs +6 -8
- data/core/module.rbs +148 -88
- data/core/nil_class.rbs +4 -3
- data/core/numeric.rbs +53 -50
- data/core/object.rbs +6 -8
- data/core/object_space.rbs +11 -10
- data/core/pathname.rbs +131 -81
- data/core/proc.rbs +65 -34
- data/core/process.rbs +221 -201
- data/core/ractor.rbs +15 -11
- data/core/random.rbs +21 -3
- data/core/range.rbs +152 -49
- data/core/rational.rbs +5 -56
- data/core/rbs/unnamed/argf.rbs +58 -51
- data/core/rbs/unnamed/env_class.rbs +18 -13
- data/core/rbs/unnamed/main_class.rbs +123 -0
- data/core/rbs/unnamed/random.rbs +7 -116
- data/core/regexp.rbs +236 -197
- data/core/ruby.rbs +1 -1
- data/core/ruby_vm.rbs +32 -30
- data/core/rubygems/config_file.rbs +5 -5
- data/core/rubygems/errors.rbs +1 -1
- data/core/rubygems/requirement.rbs +5 -5
- data/core/rubygems/rubygems.rbs +5 -3
- data/core/set.rbs +17 -16
- data/core/signal.rbs +2 -2
- data/core/string.rbs +318 -298
- data/core/struct.rbs +26 -25
- data/core/symbol.rbs +25 -24
- data/core/thread.rbs +40 -41
- data/core/time.rbs +47 -42
- data/core/trace_point.rbs +34 -31
- data/core/true_class.rbs +2 -2
- data/core/unbound_method.rbs +10 -10
- data/core/warning.rbs +7 -7
- data/docs/collection.md +1 -1
- data/docs/config.md +171 -0
- data/docs/inline.md +576 -0
- data/docs/syntax.md +46 -16
- data/docs/type_fingerprint.md +21 -0
- data/exe/rbs +1 -1
- data/ext/rbs_extension/ast_translation.c +595 -98
- data/ext/rbs_extension/class_constants.c +30 -0
- data/ext/rbs_extension/class_constants.h +15 -0
- data/ext/rbs_extension/legacy_location.c +30 -53
- data/ext/rbs_extension/legacy_location.h +37 -0
- data/ext/rbs_extension/main.c +125 -24
- data/include/rbs/ast.h +485 -150
- data/include/rbs/lexer.h +11 -4
- data/include/rbs/location.h +25 -44
- data/include/rbs/parser.h +20 -2
- data/include/rbs/util/rbs_constant_pool.h +0 -3
- data/include/rbs.h +8 -0
- data/lib/rbs/ast/annotation.rb +1 -1
- data/lib/rbs/ast/comment.rb +1 -1
- data/lib/rbs/ast/declarations.rb +10 -10
- data/lib/rbs/ast/members.rb +14 -14
- data/lib/rbs/ast/ruby/annotations.rb +409 -0
- data/lib/rbs/ast/ruby/comment_block.rb +245 -0
- data/lib/rbs/ast/ruby/declarations.rb +281 -0
- data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
- data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
- data/lib/rbs/ast/ruby/members.rb +723 -0
- data/lib/rbs/ast/type_param.rb +24 -4
- data/lib/rbs/buffer.rb +105 -20
- data/lib/rbs/cli/diff.rb +16 -15
- data/lib/rbs/cli/validate.rb +62 -125
- data/lib/rbs/cli.rb +55 -23
- data/lib/rbs/collection/config/lockfile_generator.rb +8 -4
- data/lib/rbs/collection/sources/git.rb +1 -0
- data/lib/rbs/collection.rb +0 -1
- data/lib/rbs/definition.rb +6 -1
- data/lib/rbs/definition_builder/ancestor_builder.rb +119 -63
- data/lib/rbs/definition_builder/method_builder.rb +65 -30
- data/lib/rbs/definition_builder.rb +177 -20
- data/lib/rbs/diff.rb +7 -1
- data/lib/rbs/environment/class_entry.rb +69 -0
- data/lib/rbs/environment/module_entry.rb +66 -0
- data/lib/rbs/environment.rb +338 -155
- data/lib/rbs/environment_loader.rb +2 -2
- data/lib/rbs/errors.rb +30 -20
- data/lib/rbs/inline_parser/comment_association.rb +117 -0
- data/lib/rbs/inline_parser.rb +542 -0
- data/lib/rbs/location_aux.rb +36 -4
- data/lib/rbs/locator.rb +5 -1
- data/lib/rbs/method_type.rb +5 -3
- data/lib/rbs/namespace.rb +0 -7
- data/lib/rbs/parser_aux.rb +31 -8
- data/lib/rbs/prototype/helpers.rb +57 -0
- data/lib/rbs/prototype/rb.rb +3 -28
- data/lib/rbs/prototype/rbi.rb +3 -20
- data/lib/rbs/prototype/runtime.rb +10 -2
- data/lib/rbs/resolver/type_name_resolver.rb +0 -8
- data/lib/rbs/source.rb +99 -0
- data/lib/rbs/subtractor.rb +4 -3
- data/lib/rbs/test/type_check.rb +5 -2
- data/lib/rbs/type_name.rb +1 -8
- data/lib/rbs/types.rb +88 -78
- data/lib/rbs/unit_test/convertibles.rb +1 -0
- data/lib/rbs/unit_test/type_assertions.rb +35 -8
- data/lib/rbs/validator.rb +2 -2
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs.rb +12 -1
- data/rbs.gemspec +3 -2
- data/rust/.gitignore +1 -0
- data/rust/Cargo.lock +378 -0
- data/rust/Cargo.toml +7 -0
- data/rust/ruby-rbs/Cargo.toml +22 -0
- data/rust/ruby-rbs/build.rs +764 -0
- data/rust/ruby-rbs/examples/locations.rs +60 -0
- data/rust/ruby-rbs/src/lib.rs +1 -0
- data/rust/ruby-rbs/src/node/mod.rs +742 -0
- data/rust/ruby-rbs/tests/sanity.rs +47 -0
- data/rust/ruby-rbs/vendor/rbs/config.yml +1 -0
- data/rust/ruby-rbs-sys/Cargo.toml +23 -0
- data/rust/ruby-rbs-sys/build.rs +204 -0
- data/rust/ruby-rbs-sys/src/lib.rs +50 -0
- data/rust/ruby-rbs-sys/vendor/rbs/include +1 -0
- data/rust/ruby-rbs-sys/vendor/rbs/src +1 -0
- data/rust/ruby-rbs-sys/wrapper.h +1 -0
- data/schema/typeParam.json +17 -1
- data/sig/ancestor_builder.rbs +1 -1
- data/sig/ast/ruby/annotations.rbs +421 -0
- data/sig/ast/ruby/comment_block.rbs +127 -0
- data/sig/ast/ruby/declarations.rbs +158 -0
- data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
- data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
- data/sig/ast/ruby/members.rbs +178 -0
- data/sig/buffer.rbs +63 -5
- data/sig/cli/diff.rbs +5 -11
- data/sig/cli/validate.rbs +12 -8
- data/sig/cli.rbs +18 -18
- data/sig/definition.rbs +6 -0
- data/sig/definition_builder.rbs +3 -1
- data/sig/environment/class_entry.rbs +50 -0
- data/sig/environment/module_entry.rbs +50 -0
- data/sig/environment.rbs +37 -81
- data/sig/errors.rbs +26 -20
- data/sig/inline_parser/comment_association.rbs +71 -0
- data/sig/inline_parser.rbs +124 -0
- data/sig/location.rbs +32 -7
- data/sig/locator.rbs +0 -2
- data/sig/method_builder.rbs +9 -4
- data/sig/namespace.rbs +0 -5
- data/sig/parser.rbs +47 -13
- data/sig/prototype/helpers.rbs +2 -0
- data/sig/resolver/type_name_resolver.rbs +0 -3
- data/sig/source.rbs +48 -0
- data/sig/type_param.rbs +13 -8
- data/sig/typename.rbs +0 -5
- data/sig/types.rbs +6 -7
- data/sig/unit_test/spy.rbs +0 -8
- data/sig/unit_test/type_assertions.rbs +11 -0
- data/src/ast.c +491 -143
- data/src/lexer.c +1552 -1314
- data/src/lexer.re +7 -0
- data/src/lexstate.c +8 -1
- data/src/location.c +8 -48
- data/src/parser.c +1107 -409
- data/src/util/rbs_constant_pool.c +0 -4
- data/stdlib/bigdecimal/0/big_decimal.rbs +16 -16
- data/stdlib/cgi-escape/0/escape.rbs +4 -4
- data/stdlib/coverage/0/coverage.rbs +4 -3
- data/stdlib/date/0/date.rbs +33 -28
- data/stdlib/date/0/date_time.rbs +24 -23
- data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
- data/stdlib/digest/0/digest.rbs +110 -0
- data/stdlib/erb/0/erb.rbs +64 -53
- data/stdlib/etc/0/etc.rbs +55 -50
- data/stdlib/fileutils/0/fileutils.rbs +140 -126
- data/stdlib/forwardable/0/forwardable.rbs +10 -10
- data/stdlib/io-console/0/io-console.rbs +2 -2
- data/stdlib/json/0/json.rbs +158 -131
- data/stdlib/monitor/0/monitor.rbs +3 -3
- data/stdlib/net-http/0/net-http.rbs +159 -134
- data/stdlib/objspace/0/objspace.rbs +8 -30
- data/stdlib/open-uri/0/open-uri.rbs +8 -8
- data/stdlib/open3/0/open3.rbs +469 -10
- data/stdlib/openssl/0/openssl.rbs +144 -129
- data/stdlib/optparse/0/optparse.rbs +23 -14
- data/stdlib/pathname/0/pathname.rbs +2 -2
- data/stdlib/pp/0/pp.rbs +9 -8
- data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
- data/stdlib/pstore/0/pstore.rbs +35 -30
- data/stdlib/psych/0/psych.rbs +62 -9
- data/stdlib/psych/0/store.rbs +2 -4
- data/stdlib/pty/0/pty.rbs +9 -6
- data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
- data/stdlib/rdoc/0/code_object.rbs +2 -1
- data/stdlib/rdoc/0/parser.rbs +1 -1
- data/stdlib/rdoc/0/store.rbs +1 -1
- data/stdlib/ripper/0/ripper.rbs +20 -17
- data/stdlib/securerandom/0/manifest.yaml +2 -0
- data/stdlib/securerandom/0/securerandom.rbs +7 -20
- data/stdlib/shellwords/0/shellwords.rbs +2 -2
- data/stdlib/socket/0/addrinfo.rbs +9 -9
- data/stdlib/socket/0/basic_socket.rbs +3 -3
- data/stdlib/socket/0/ip_socket.rbs +10 -8
- data/stdlib/socket/0/socket.rbs +10 -9
- data/stdlib/socket/0/tcp_server.rbs +1 -1
- data/stdlib/socket/0/tcp_socket.rbs +1 -1
- data/stdlib/socket/0/udp_socket.rbs +1 -1
- data/stdlib/socket/0/unix_server.rbs +1 -1
- data/stdlib/stringio/0/stringio.rbs +55 -54
- data/stdlib/strscan/0/string_scanner.rbs +46 -44
- data/stdlib/tempfile/0/tempfile.rbs +24 -20
- data/stdlib/time/0/time.rbs +7 -5
- data/stdlib/tsort/0/tsort.rbs +7 -6
- data/stdlib/uri/0/common.rbs +31 -18
- data/stdlib/uri/0/file.rbs +2 -2
- data/stdlib/uri/0/generic.rbs +9 -2
- data/stdlib/uri/0/http.rbs +2 -2
- data/stdlib/uri/0/ldap.rbs +2 -2
- data/stdlib/uri/0/mailto.rbs +3 -3
- data/stdlib/uri/0/rfc2396_parser.rbs +6 -5
- data/stdlib/zlib/0/deflate.rbs +4 -3
- data/stdlib/zlib/0/gzip_reader.rbs +6 -6
- data/stdlib/zlib/0/gzip_writer.rbs +14 -12
- data/stdlib/zlib/0/inflate.rbs +1 -1
- data/stdlib/zlib/0/need_dict.rbs +1 -1
- metadata +66 -3
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
module Unnamed
|
|
3
|
+
module Random_Formatter
|
|
4
|
+
# <!--
|
|
5
|
+
# rdoc-file=lib/random/formatter.rb
|
|
6
|
+
# - base64(n=nil)
|
|
7
|
+
# -->
|
|
8
|
+
# Generate a random base64 string.
|
|
9
|
+
#
|
|
10
|
+
# The argument *n* specifies the length, in bytes, of the random number to be
|
|
11
|
+
# generated. The length of the result string is about 4/3 of *n*.
|
|
12
|
+
#
|
|
13
|
+
# If *n* is not specified or is nil, 16 is assumed. It may be larger in the
|
|
14
|
+
# future.
|
|
15
|
+
#
|
|
16
|
+
# The result may contain A-Z, a-z, 0-9, "+", "/" and "=".
|
|
17
|
+
#
|
|
18
|
+
# require 'random/formatter'
|
|
19
|
+
#
|
|
20
|
+
# Random.base64 #=> "/2BuBuLf3+WfSKyQbRcc/A=="
|
|
21
|
+
# # or
|
|
22
|
+
# prng = Random.new
|
|
23
|
+
# prng.base64 #=> "6BbW0pxO0YENxn38HMUbcQ=="
|
|
24
|
+
#
|
|
25
|
+
# See RFC 3548 for the definition of base64.
|
|
26
|
+
#
|
|
27
|
+
%a{annotate:rdoc:copy:Random::Formatter#base64}
|
|
28
|
+
def base64: (?Integer? n) -> String
|
|
29
|
+
|
|
30
|
+
# <!--
|
|
31
|
+
# rdoc-file=lib/random/formatter.rb
|
|
32
|
+
# - hex(n=nil)
|
|
33
|
+
# -->
|
|
34
|
+
# Generate a random hexadecimal string.
|
|
35
|
+
#
|
|
36
|
+
# The argument *n* specifies the length, in bytes, of the random number to be
|
|
37
|
+
# generated. The length of the resulting hexadecimal string is twice of *n*.
|
|
38
|
+
#
|
|
39
|
+
# If *n* is not specified or is nil, 16 is assumed. It may be larger in the
|
|
40
|
+
# future.
|
|
41
|
+
#
|
|
42
|
+
# The result may contain 0-9 and a-f.
|
|
43
|
+
#
|
|
44
|
+
# require 'random/formatter'
|
|
45
|
+
#
|
|
46
|
+
# Random.hex #=> "eb693ec8252cd630102fd0d0fb7c3485"
|
|
47
|
+
# # or
|
|
48
|
+
# prng = Random.new
|
|
49
|
+
# prng.hex #=> "91dc3bfb4de5b11d029d376634589b61"
|
|
50
|
+
#
|
|
51
|
+
%a{annotate:rdoc:copy:Random::Formatter#hex}
|
|
52
|
+
def hex: (?Integer? n) -> String
|
|
53
|
+
|
|
54
|
+
# <!--
|
|
55
|
+
# rdoc-file=lib/random/formatter.rb
|
|
56
|
+
# - random_bytes(n=nil)
|
|
57
|
+
# -->
|
|
58
|
+
# Generate a random binary string.
|
|
59
|
+
#
|
|
60
|
+
# The argument *n* specifies the length of the result string.
|
|
61
|
+
#
|
|
62
|
+
# If *n* is not specified or is nil, 16 is assumed. It may be larger in future.
|
|
63
|
+
#
|
|
64
|
+
# The result may contain any byte: "x00" - "xff".
|
|
65
|
+
#
|
|
66
|
+
# require 'random/formatter'
|
|
67
|
+
#
|
|
68
|
+
# Random.random_bytes #=> "\xD8\\\xE0\xF4\r\xB2\xFC*WM\xFF\x83\x18\xF45\xB6"
|
|
69
|
+
# # or
|
|
70
|
+
# prng = Random.new
|
|
71
|
+
# prng.random_bytes #=> "m\xDC\xFC/\a\x00Uf\xB2\xB2P\xBD\xFF6S\x97"
|
|
72
|
+
#
|
|
73
|
+
%a{annotate:rdoc:copy:Random::Formatter#random_bytes}
|
|
74
|
+
def random_bytes: (?Integer? n) -> String
|
|
75
|
+
|
|
76
|
+
# <!--
|
|
77
|
+
# rdoc-file=lib/random/formatter.rb
|
|
78
|
+
# - urlsafe_base64(n=nil, padding=false)
|
|
79
|
+
# -->
|
|
80
|
+
# Generate a random URL-safe base64 string.
|
|
81
|
+
#
|
|
82
|
+
# The argument *n* specifies the length, in bytes, of the random number to be
|
|
83
|
+
# generated. The length of the result string is about 4/3 of *n*.
|
|
84
|
+
#
|
|
85
|
+
# If *n* is not specified or is nil, 16 is assumed. It may be larger in the
|
|
86
|
+
# future.
|
|
87
|
+
#
|
|
88
|
+
# The boolean argument *padding* specifies the padding. If it is false or nil,
|
|
89
|
+
# padding is not generated. Otherwise padding is generated. By default, padding
|
|
90
|
+
# is not generated because "=" may be used as a URL delimiter.
|
|
91
|
+
#
|
|
92
|
+
# The result may contain A-Z, a-z, 0-9, "-" and "_". "=" is also used if
|
|
93
|
+
# *padding* is true.
|
|
94
|
+
#
|
|
95
|
+
# require 'random/formatter'
|
|
96
|
+
#
|
|
97
|
+
# Random.urlsafe_base64 #=> "b4GOKm4pOYU_-BOXcrUGDg"
|
|
98
|
+
# # or
|
|
99
|
+
# prng = Random.new
|
|
100
|
+
# prng.urlsafe_base64 #=> "UZLdOkzop70Ddx-IJR0ABg"
|
|
101
|
+
#
|
|
102
|
+
# prng.urlsafe_base64(nil, true) #=> "i0XQ-7gglIsHGV2_BNPrdQ=="
|
|
103
|
+
# prng.urlsafe_base64(nil, true) #=> "-M8rLhr7JEpJlqFGUMmOxg=="
|
|
104
|
+
#
|
|
105
|
+
# See RFC 3548 for the definition of URL-safe base64.
|
|
106
|
+
#
|
|
107
|
+
%a{annotate:rdoc:copy:Random::Formatter#urlsafe_base64}
|
|
108
|
+
def urlsafe_base64: (?Integer? n, ?boolish padding) -> String
|
|
109
|
+
|
|
110
|
+
# <!--
|
|
111
|
+
# rdoc-file=lib/random/formatter.rb
|
|
112
|
+
# - uuid()
|
|
113
|
+
# -->
|
|
114
|
+
# Generate a random v4 UUID (Universally Unique IDentifier).
|
|
115
|
+
#
|
|
116
|
+
# require 'random/formatter'
|
|
117
|
+
#
|
|
118
|
+
# Random.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594"
|
|
119
|
+
# Random.uuid #=> "bad85eb9-0713-4da7-8d36-07a8e4b00eab"
|
|
120
|
+
# # or
|
|
121
|
+
# prng = Random.new
|
|
122
|
+
# prng.uuid #=> "62936e70-1815-439b-bf89-8492855a7e6b"
|
|
123
|
+
#
|
|
124
|
+
# The version 4 UUID is purely random (except the version). It doesn't contain
|
|
125
|
+
# meaningful information such as MAC addresses, timestamps, etc.
|
|
126
|
+
#
|
|
127
|
+
# The result contains 122 random bits (15.25 random bytes).
|
|
128
|
+
#
|
|
129
|
+
# See [RFC9562](https://www.rfc-editor.org/rfc/rfc9562) for details of UUIDv4.
|
|
130
|
+
#
|
|
131
|
+
%a{annotate:rdoc:copy:Random::Formatter#uuid}
|
|
132
|
+
def uuid: () -> String
|
|
133
|
+
|
|
134
|
+
# <!--
|
|
135
|
+
# rdoc-file=lib/random/formatter.rb
|
|
136
|
+
# - uuid_v4()
|
|
137
|
+
# -->
|
|
138
|
+
#
|
|
139
|
+
%a{annotate:rdoc:copy:Random::Formatter#uuid_v4}
|
|
140
|
+
alias uuid_v4 uuid
|
|
141
|
+
|
|
142
|
+
# <!--
|
|
143
|
+
# rdoc-file=lib/random/formatter.rb
|
|
144
|
+
# - uuid_v7(extra_timestamp_bits: 0)
|
|
145
|
+
# -->
|
|
146
|
+
# Generate a random v7 UUID (Universally Unique IDentifier).
|
|
147
|
+
#
|
|
148
|
+
# require 'random/formatter'
|
|
149
|
+
#
|
|
150
|
+
# Random.uuid_v7 # => "0188d4c3-1311-7f96-85c7-242a7aa58f1e"
|
|
151
|
+
# Random.uuid_v7 # => "0188d4c3-16fe-744f-86af-38fa04c62bb5"
|
|
152
|
+
# Random.uuid_v7 # => "0188d4c3-1af8-764f-b049-c204ce0afa23"
|
|
153
|
+
# Random.uuid_v7 # => "0188d4c3-1e74-7085-b14f-ef6415dc6f31"
|
|
154
|
+
# # |<--sorted-->| |<----- random ---->|
|
|
155
|
+
#
|
|
156
|
+
# # or
|
|
157
|
+
# prng = Random.new
|
|
158
|
+
# prng.uuid_v7 # => "0188ca51-5e72-7950-a11d-def7ff977c98"
|
|
159
|
+
#
|
|
160
|
+
# The version 7 UUID starts with the least significant 48 bits of a 64 bit Unix
|
|
161
|
+
# timestamp (milliseconds since the epoch) and fills the remaining bits with
|
|
162
|
+
# random data, excluding the version and variant bits.
|
|
163
|
+
#
|
|
164
|
+
# This allows version 7 UUIDs to be sorted by creation time. Time ordered UUIDs
|
|
165
|
+
# can be used for better database index locality of newly inserted records,
|
|
166
|
+
# which may have a significant performance benefit compared to random data
|
|
167
|
+
# inserts.
|
|
168
|
+
#
|
|
169
|
+
# The result contains 74 random bits (9.25 random bytes).
|
|
170
|
+
#
|
|
171
|
+
# Note that this method cannot be made reproducible because its output includes
|
|
172
|
+
# not only random bits but also timestamp.
|
|
173
|
+
#
|
|
174
|
+
# See [RFC9562](https://www.rfc-editor.org/rfc/rfc9562) for details of UUIDv7.
|
|
175
|
+
#
|
|
176
|
+
# #### Monotonicity
|
|
177
|
+
#
|
|
178
|
+
# UUIDv7 has millisecond precision by default, so multiple UUIDs created within
|
|
179
|
+
# the same millisecond are not issued in monotonically increasing order. To
|
|
180
|
+
# create UUIDs that are time-ordered with sub-millisecond precision, up to 12
|
|
181
|
+
# bits of additional timestamp may added with `extra_timestamp_bits`. The extra
|
|
182
|
+
# timestamp precision comes at the expense of random bits. Setting
|
|
183
|
+
# <code>extra_timestamp_bits: 12</code> provides ~244ns of precision, but only
|
|
184
|
+
# 62 random bits (7.75 random bytes).
|
|
185
|
+
#
|
|
186
|
+
# prng = Random.new
|
|
187
|
+
# Array.new(4) { prng.uuid_v7(extra_timestamp_bits: 12) }
|
|
188
|
+
# # =>
|
|
189
|
+
# ["0188d4c7-13da-74f9-8b53-22a786ffdd5a",
|
|
190
|
+
# "0188d4c7-13da-753b-83a5-7fb9b2afaeea",
|
|
191
|
+
# "0188d4c7-13da-754a-88ea-ac0baeedd8db",
|
|
192
|
+
# "0188d4c7-13da-7557-83e1-7cad9cda0d8d"]
|
|
193
|
+
# # |<--- sorted --->| |<-- random --->|
|
|
194
|
+
#
|
|
195
|
+
# Array.new(4) { prng.uuid_v7(extra_timestamp_bits: 8) }
|
|
196
|
+
# # =>
|
|
197
|
+
# ["0188d4c7-3333-7a95-850a-de6edb858f7e",
|
|
198
|
+
# "0188d4c7-3333-7ae8-842e-bc3a8b7d0cf9", # <- out of order
|
|
199
|
+
# "0188d4c7-3333-7ae2-995a-9f135dc44ead", # <- out of order
|
|
200
|
+
# "0188d4c7-3333-7af9-87c3-8f612edac82e"]
|
|
201
|
+
# # |<--- sorted -->||<---- random --->|
|
|
202
|
+
#
|
|
203
|
+
# Any rollbacks of the system clock will break monotonicity. UUIDv7 is based on
|
|
204
|
+
# UTC, which excludes leap seconds and can rollback the clock. To avoid this,
|
|
205
|
+
# the system clock can synchronize with an NTP server configured to use a "leap
|
|
206
|
+
# smear" approach. NTP or PTP will also be needed to synchronize across
|
|
207
|
+
# distributed nodes.
|
|
208
|
+
#
|
|
209
|
+
# Counters and other mechanisms for stronger guarantees of monotonicity are not
|
|
210
|
+
# implemented. Applications with stricter requirements should follow [Section
|
|
211
|
+
# 6.2](https://www.rfc-editor.org/rfc/rfc9562.html#name-monotonicity-and-counter
|
|
212
|
+
# s) of the specification.
|
|
213
|
+
#
|
|
214
|
+
%a{annotate:rdoc:copy:Random::Formatter#uuid_v7}
|
|
215
|
+
def uuid_v7: (?extra_timestamp_bits: Integer) -> String
|
|
216
|
+
|
|
217
|
+
# <!--
|
|
218
|
+
# rdoc-file=lib/random/formatter.rb
|
|
219
|
+
# - alphanumeric(n = nil, chars: ALPHANUMERIC)
|
|
220
|
+
# -->
|
|
221
|
+
# Generate a random alphanumeric string.
|
|
222
|
+
#
|
|
223
|
+
# The argument *n* specifies the length, in characters, of the alphanumeric
|
|
224
|
+
# string to be generated. The argument *chars* specifies the character list
|
|
225
|
+
# which the result is consist of.
|
|
226
|
+
#
|
|
227
|
+
# If *n* is not specified or is nil, 16 is assumed. It may be larger in the
|
|
228
|
+
# future.
|
|
229
|
+
#
|
|
230
|
+
# The result may contain A-Z, a-z and 0-9, unless *chars* is specified.
|
|
231
|
+
#
|
|
232
|
+
# require 'random/formatter'
|
|
233
|
+
#
|
|
234
|
+
# Random.alphanumeric #=> "2BuBuLf3WfSKyQbR"
|
|
235
|
+
# # or
|
|
236
|
+
# prng = Random.new
|
|
237
|
+
# prng.alphanumeric(10) #=> "i6K93NdqiH"
|
|
238
|
+
#
|
|
239
|
+
# Random.alphanumeric(4, chars: [*"0".."9"]) #=> "2952"
|
|
240
|
+
# # or
|
|
241
|
+
# prng = Random.new
|
|
242
|
+
# prng.alphanumeric(10, chars: [*"!".."/"]) #=> ",.,++%/''."
|
|
243
|
+
#
|
|
244
|
+
%a{annotate:rdoc:copy:Random::Formatter#alphanumeric}
|
|
245
|
+
def alphanumeric: (?Numeric?, ?chars: Array[String]) -> String
|
|
246
|
+
|
|
247
|
+
# <!--
|
|
248
|
+
# rdoc-file=lib/random/formatter.rb
|
|
249
|
+
# - gen_random(n)
|
|
250
|
+
# -->
|
|
251
|
+
# Internal interface to Random; Generate random data *n* bytes.
|
|
252
|
+
#
|
|
253
|
+
%a{annotate:rdoc:copy:Random::Formatter#gen_random}
|
|
254
|
+
private def gen_random: (Integer n) -> String
|
|
255
|
+
|
|
256
|
+
# <!--
|
|
257
|
+
# rdoc-file=lib/random/formatter.rb
|
|
258
|
+
# - choose(source, n)
|
|
259
|
+
# -->
|
|
260
|
+
# Generate a string that randomly draws from a source array of characters.
|
|
261
|
+
#
|
|
262
|
+
# The argument *source* specifies the array of characters from which to generate
|
|
263
|
+
# the string. The argument *n* specifies the length, in characters, of the
|
|
264
|
+
# string to be generated.
|
|
265
|
+
#
|
|
266
|
+
# The result may contain whatever characters are in the source array.
|
|
267
|
+
#
|
|
268
|
+
# require 'random/formatter'
|
|
269
|
+
#
|
|
270
|
+
# prng.choose([*'l'..'r'], 16) #=> "lmrqpoonmmlqlron"
|
|
271
|
+
# prng.choose([*'0'..'9'], 5) #=> "27309"
|
|
272
|
+
#
|
|
273
|
+
%a{annotate:rdoc:copy:Random::Formatter#choose}
|
|
274
|
+
private def choose: (Array[String] source, Integer n) -> String
|
|
275
|
+
end
|
|
276
|
+
end
|
|
277
|
+
end
|
|
@@ -22,9 +22,10 @@ module RDoc
|
|
|
22
22
|
# * RDoc::MetaMethod
|
|
23
23
|
# * RDoc::Alias
|
|
24
24
|
# * RDoc::Constant
|
|
25
|
+
# * RDoc::Require
|
|
25
26
|
# * RDoc::Mixin
|
|
26
|
-
# * RDoc::Require
|
|
27
27
|
# * RDoc::Include
|
|
28
|
+
# * RDoc::Extend
|
|
28
29
|
#
|
|
29
30
|
class CodeObject
|
|
30
31
|
# <!-- rdoc-file=lib/rdoc/code_object.rb -->
|
data/stdlib/rdoc/0/parser.rbs
CHANGED
|
@@ -42,7 +42,7 @@ module RDoc
|
|
|
42
42
|
|
|
43
43
|
# <!--
|
|
44
44
|
# rdoc-file=lib/rdoc/parser.rb
|
|
45
|
-
# - new(top_level,
|
|
45
|
+
# - new(top_level, content, options, stats)
|
|
46
46
|
# -->
|
|
47
47
|
# Creates a new Parser storing `top_level`, `file_name`, `content`, `options`
|
|
48
48
|
# and `stats` in instance variables. In +@preprocess+ an
|
data/stdlib/rdoc/0/store.rbs
CHANGED
data/stdlib/ripper/0/ripper.rbs
CHANGED
|
@@ -31,23 +31,26 @@
|
|
|
31
31
|
# nil,
|
|
32
32
|
# nil]]]]
|
|
33
33
|
#
|
|
34
|
-
# You can see in the example above, the expression starts with
|
|
34
|
+
# You can see in the example above, the expression starts with
|
|
35
|
+
# <code>:program</code>.
|
|
35
36
|
#
|
|
36
|
-
# From here, a method definition at
|
|
37
|
-
#
|
|
38
|
-
# the method parameters under
|
|
37
|
+
# From here, a method definition at <code>:def</code>, followed by the method's
|
|
38
|
+
# identifier <code>:@ident</code>. After the method's identifier comes the
|
|
39
|
+
# parentheses <code>:paren</code> and the method parameters under
|
|
40
|
+
# <code>:params</code>.
|
|
39
41
|
#
|
|
40
|
-
# Next is the method body, starting at
|
|
41
|
-
# which contains the full definition of the method.
|
|
42
|
+
# Next is the method body, starting at <code>:bodystmt</code> (`stmt` meaning
|
|
43
|
+
# statement), which contains the full definition of the method.
|
|
42
44
|
#
|
|
43
45
|
# In our case, we're simply returning a String, so next we have the
|
|
44
|
-
#
|
|
46
|
+
# <code>:string_literal</code> expression.
|
|
45
47
|
#
|
|
46
|
-
# Within our
|
|
47
|
-
# literal part for
|
|
48
|
-
#
|
|
49
|
-
#
|
|
50
|
-
#
|
|
48
|
+
# Within our <code>:string_literal</code> you'll notice two
|
|
49
|
+
# <code>@tstring_content</code>, this is the literal part for <code>Hello,
|
|
50
|
+
# </code> and <code>!</code>. Between the two <code>@tstring_content</code>
|
|
51
|
+
# statements is a <code>:string_embexpr</code>, where *embexpr* is an embedded
|
|
52
|
+
# expression. Our expression consists of a local variable, or `var_ref`, with
|
|
53
|
+
# the identifier (<code>@ident</code>) of `world`.
|
|
51
54
|
#
|
|
52
55
|
# ## Resources
|
|
53
56
|
#
|
|
@@ -189,7 +192,7 @@ class Ripper
|
|
|
189
192
|
# - state()
|
|
190
193
|
# -->
|
|
191
194
|
# The scanner's state of the current token. This value is the bitwise OR of zero
|
|
192
|
-
# or more of the
|
|
195
|
+
# or more of the <code>Ripper::EXPR_*</code> constants.
|
|
193
196
|
#
|
|
194
197
|
def state: () -> Ripper::Lexer::State
|
|
195
198
|
|
|
@@ -972,10 +975,10 @@ class Ripper
|
|
|
972
975
|
# - lex(src, filename = '-', lineno = 1, **kw)
|
|
973
976
|
# -->
|
|
974
977
|
# Tokenizes the Ruby program and returns an array of an array, which is
|
|
975
|
-
# formatted like
|
|
976
|
-
# argument is mostly ignored. By default, this method does not handle
|
|
977
|
-
# errors in `src`, use the `raise_errors` keyword to raise a SyntaxError
|
|
978
|
-
# error in `src`.
|
|
978
|
+
# formatted like <code>[[lineno, column], type, token, state]</code>. The
|
|
979
|
+
# `filename` argument is mostly ignored. By default, this method does not handle
|
|
980
|
+
# syntax errors in `src`, use the `raise_errors` keyword to raise a SyntaxError
|
|
981
|
+
# for an error in `src`.
|
|
979
982
|
#
|
|
980
983
|
# require 'ripper'
|
|
981
984
|
# require 'pp'
|
|
@@ -29,34 +29,21 @@
|
|
|
29
29
|
# * uuid
|
|
30
30
|
#
|
|
31
31
|
# These methods are usable as class methods of SecureRandom such as
|
|
32
|
-
#
|
|
32
|
+
# <code>SecureRandom.hex</code>.
|
|
33
33
|
#
|
|
34
34
|
# If a secure random number generator is not available, `NotImplementedError` is
|
|
35
35
|
# raised.
|
|
36
36
|
#
|
|
37
37
|
module SecureRandom
|
|
38
|
-
extend Random::Formatter
|
|
39
|
-
|
|
40
38
|
# <!--
|
|
41
39
|
# rdoc-file=lib/securerandom.rb
|
|
42
|
-
# -
|
|
40
|
+
# - bytes(n)
|
|
43
41
|
# -->
|
|
44
|
-
#
|
|
45
|
-
# support Ruby 3.2
|
|
42
|
+
# Returns a random binary string containing `size` bytes.
|
|
46
43
|
#
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
def self.
|
|
50
|
-
|
|
51
|
-
def self.hex: (?Integer?) -> String
|
|
52
|
-
|
|
53
|
-
def self.random_bytes: (?Integer?) -> String
|
|
54
|
-
|
|
55
|
-
def self.random_number: () -> Float
|
|
56
|
-
| (Integer) -> Integer
|
|
57
|
-
| (Numeric) -> Numeric
|
|
58
|
-
|
|
59
|
-
def self.urlsafe_base64: (?Integer?, ?bool?) -> String
|
|
44
|
+
# See Random.bytes
|
|
45
|
+
#
|
|
46
|
+
def self.bytes: (Integer) -> String
|
|
60
47
|
|
|
61
|
-
|
|
48
|
+
extend Random::Formatter
|
|
62
49
|
end
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
# This module manipulates strings according to the word parsing rules of the
|
|
5
5
|
# UNIX Bourne shell.
|
|
6
6
|
#
|
|
7
|
-
# The
|
|
8
|
-
# modified to conform to [the Shell & Utilities volume of the IEEE Std
|
|
7
|
+
# The <code>shellwords()</code> function was originally a port of shellwords.pl,
|
|
8
|
+
# but modified to conform to [the Shell & Utilities volume of the IEEE Std
|
|
9
9
|
# 1003.1-2008, 2016
|
|
10
10
|
# Edition](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.ht
|
|
11
11
|
# ml)
|
|
@@ -61,8 +61,8 @@ class Addrinfo
|
|
|
61
61
|
# #=> [#<Addrinfo: 203.178.141.194:80 TCP (www.kame.net)>,
|
|
62
62
|
# # #<Addrinfo: [2001:200:dff:fff1:216:3eff:feb1:44d7]:80 TCP (www.kame.net)>]
|
|
63
63
|
#
|
|
64
|
-
def self.getaddrinfo: (String nodename, ?String | Integer
|
|
65
|
-
| (String? nodename, ?String | Integer service, ?Symbol? family, ?Symbol | Integer protocol) -> Array[Addrinfo]
|
|
64
|
+
def self.getaddrinfo: (String nodename, ?(String | Integer)? service, ?(Symbol | Integer)? family, ?Symbol | Integer protocol) -> Array[Addrinfo]
|
|
65
|
+
| (String? nodename, ?(String | Integer) service, ?(Symbol | Integer)? family, ?Symbol | Integer protocol) -> Array[Addrinfo]
|
|
66
66
|
|
|
67
67
|
# <!--
|
|
68
68
|
# rdoc-file=ext/socket/raddrinfo.c
|
|
@@ -634,13 +634,13 @@ class Addrinfo
|
|
|
634
634
|
# sockaddr as generated by Socket.sockaddr_in or Socket.unpack_sockaddr_un.
|
|
635
635
|
#
|
|
636
636
|
# sockaddr examples:
|
|
637
|
-
# *
|
|
638
|
-
# *
|
|
639
|
-
# *
|
|
640
|
-
# *
|
|
641
|
-
# *
|
|
642
|
-
# *
|
|
643
|
-
# *
|
|
637
|
+
# * <code>["AF_INET", 46102, "localhost.localdomain", "127.0.0.1"]</code>
|
|
638
|
+
# * <code>["AF_INET6", 42304, "ip6-localhost", "::1"]</code>
|
|
639
|
+
# * <code>["AF_UNIX", "/tmp/sock"]</code>
|
|
640
|
+
# * <code>Socket.sockaddr_in("smtp", "2001:DB8::1")</code>
|
|
641
|
+
# * <code>Socket.sockaddr_in(80, "172.18.22.42")</code>
|
|
642
|
+
# * <code>Socket.sockaddr_in(80, "www.ruby-lang.org")</code>
|
|
643
|
+
# * <code>Socket.sockaddr_un("/tmp/sock")</code>
|
|
644
644
|
#
|
|
645
645
|
# In an AF_INET/AF_INET6 sockaddr array, the 4th element, numeric IP address, is
|
|
646
646
|
# used to construct socket address in the Addrinfo instance. If the 3rd element,
|
|
@@ -325,7 +325,7 @@ class BasicSocket < IO
|
|
|
325
325
|
#
|
|
326
326
|
# By specifying a keyword argument *exception* to `false`, you can indicate that
|
|
327
327
|
# recv_nonblock should not raise an IO::WaitReadable exception, but return the
|
|
328
|
-
# symbol
|
|
328
|
+
# symbol <code>:wait_readable</code> instead.
|
|
329
329
|
#
|
|
330
330
|
# ### See
|
|
331
331
|
# * Socket#recvfrom
|
|
@@ -399,7 +399,7 @@ class BasicSocket < IO
|
|
|
399
399
|
#
|
|
400
400
|
# By specifying a keyword argument *exception* to `false`, you can indicate that
|
|
401
401
|
# recvmsg_nonblock should not raise an IO::WaitReadable exception, but return
|
|
402
|
-
# the symbol
|
|
402
|
+
# the symbol <code>:wait_readable</code> instead.
|
|
403
403
|
#
|
|
404
404
|
def recvmsg_nonblock: (?Integer dlen, ?Integer flags, ?Integer clen, ?exception: boolish, ?scm_rights: boolish) -> ([ String, Addrinfo, Integer?, Array[Socket::AncillaryData] ] | :wait_readable)
|
|
405
405
|
|
|
@@ -487,7 +487,7 @@ class BasicSocket < IO
|
|
|
487
487
|
#
|
|
488
488
|
# By specifying a keyword argument *exception* to `false`, you can indicate that
|
|
489
489
|
# sendmsg_nonblock should not raise an IO::WaitWritable exception, but return
|
|
490
|
-
# the symbol
|
|
490
|
+
# the symbol <code>:wait_writable</code> instead.
|
|
491
491
|
#
|
|
492
492
|
def sendmsg_nonblock: (String mesg, ?Integer flags, ?Addrinfo | String dest_sockaddr, *Socket::AncillaryData controls, ?exception: boolish) -> (Integer | :wait_writable)
|
|
493
493
|
|
|
@@ -22,10 +22,11 @@ class IPSocket < BasicSocket
|
|
|
22
22
|
# Returns the local address as an array which contains address_family, port,
|
|
23
23
|
# hostname and numeric_address.
|
|
24
24
|
#
|
|
25
|
-
# If `reverse_lookup` is `true` or
|
|
26
|
-
# numeric_address using reverse lookup. Or if it is `false`, or
|
|
27
|
-
# hostname is the same as numeric_address. Or if it is
|
|
28
|
-
# to
|
|
25
|
+
# If `reverse_lookup` is `true` or <code>:hostname</code>, hostname is obtained
|
|
26
|
+
# from numeric_address using reverse lookup. Or if it is `false`, or
|
|
27
|
+
# <code>:numeric</code>, hostname is the same as numeric_address. Or if it is
|
|
28
|
+
# `nil` or omitted, obeys to <code>ipsocket.do_not_reverse_lookup</code>. See
|
|
29
|
+
# <code>Socket.getaddrinfo</code> also.
|
|
29
30
|
#
|
|
30
31
|
# TCPSocket.open("www.ruby-lang.org", 80) {|sock|
|
|
31
32
|
# p sock.addr #=> ["AF_INET", 49429, "hal", "192.168.0.128"]
|
|
@@ -53,10 +54,11 @@ class IPSocket < BasicSocket
|
|
|
53
54
|
# hostname and numeric_address. It is defined for connection oriented socket
|
|
54
55
|
# such as TCPSocket.
|
|
55
56
|
#
|
|
56
|
-
# If `reverse_lookup` is `true` or
|
|
57
|
-
# numeric_address using reverse lookup. Or if it is `false`, or
|
|
58
|
-
# hostname is the same as numeric_address. Or if it is
|
|
59
|
-
# to
|
|
57
|
+
# If `reverse_lookup` is `true` or <code>:hostname</code>, hostname is obtained
|
|
58
|
+
# from numeric_address using reverse lookup. Or if it is `false`, or
|
|
59
|
+
# <code>:numeric</code>, hostname is the same as numeric_address. Or if it is
|
|
60
|
+
# `nil` or omitted, obeys to <code>ipsocket.do_not_reverse_lookup</code>. See
|
|
61
|
+
# <code>Socket.getaddrinfo</code> also.
|
|
60
62
|
#
|
|
61
63
|
# TCPSocket.open("www.ruby-lang.org", 80) {|sock|
|
|
62
64
|
# p sock.peeraddr #=> ["AF_INET", 80, "carbon.ruby-lang.org", "221.186.184.68"]
|
data/stdlib/socket/0/socket.rbs
CHANGED
|
@@ -16,20 +16,21 @@
|
|
|
16
16
|
#
|
|
17
17
|
# Sockets have their own vocabulary:
|
|
18
18
|
#
|
|
19
|
-
#
|
|
19
|
+
# <strong>domain:</strong> The family of protocols:
|
|
20
20
|
# * Socket::PF_INET
|
|
21
21
|
# * Socket::PF_INET6
|
|
22
22
|
# * Socket::PF_UNIX
|
|
23
23
|
# * etc.
|
|
24
24
|
#
|
|
25
|
-
#
|
|
25
|
+
# <strong>type:</strong> The type of communications between the two endpoints,
|
|
26
|
+
# typically
|
|
26
27
|
# * Socket::SOCK_STREAM
|
|
27
28
|
# * Socket::SOCK_DGRAM.
|
|
28
29
|
#
|
|
29
|
-
#
|
|
30
|
-
# protocol.
|
|
30
|
+
# <strong>protocol:</strong> Typically *zero*. This may be used to identify a
|
|
31
|
+
# variant of a protocol.
|
|
31
32
|
#
|
|
32
|
-
#
|
|
33
|
+
# <strong>hostname:</strong> The identifier of a network interface:
|
|
33
34
|
# * a string (hostname, IPv4 or IPv6 address or `broadcast` which specifies a
|
|
34
35
|
# broadcast address)
|
|
35
36
|
# * a zero-length string which specifies INADDR_ANY
|
|
@@ -484,7 +485,7 @@ class Socket < BasicSocket
|
|
|
484
485
|
# The `connect_timeout` specifies the timeout in seconds from the start of
|
|
485
486
|
# the connection attempt to the last candidate.
|
|
486
487
|
# By default, all connection attempts continue until the timeout occurs.
|
|
487
|
-
# When
|
|
488
|
+
# When <code>fast_fallback:false</code> is explicitly specified,
|
|
488
489
|
# a timeout is set for each connection attempt and any connection attempt
|
|
489
490
|
# that exceeds its timeout will be canceled.
|
|
490
491
|
#
|
|
@@ -845,7 +846,7 @@ class Socket < BasicSocket
|
|
|
845
846
|
#
|
|
846
847
|
# By specifying a keyword argument *exception* to `false`, you can indicate that
|
|
847
848
|
# accept_nonblock should not raise an IO::WaitReadable exception, but return the
|
|
848
|
-
# symbol
|
|
849
|
+
# symbol <code>:wait_readable</code> instead.
|
|
849
850
|
#
|
|
850
851
|
# ### See
|
|
851
852
|
# * Socket#accept
|
|
@@ -1099,7 +1100,7 @@ class Socket < BasicSocket
|
|
|
1099
1100
|
#
|
|
1100
1101
|
# By specifying a keyword argument *exception* to `false`, you can indicate that
|
|
1101
1102
|
# connect_nonblock should not raise an IO::WaitWritable exception, but return
|
|
1102
|
-
# the symbol
|
|
1103
|
+
# the symbol <code>:wait_writable</code> instead.
|
|
1103
1104
|
#
|
|
1104
1105
|
# ### See
|
|
1105
1106
|
# * Socket#connect
|
|
@@ -1357,7 +1358,7 @@ class Socket < BasicSocket
|
|
|
1357
1358
|
#
|
|
1358
1359
|
# By specifying a keyword argument *exception* to `false`, you can indicate that
|
|
1359
1360
|
# recvfrom_nonblock should not raise an IO::WaitReadable exception, but return
|
|
1360
|
-
# the symbol
|
|
1361
|
+
# the symbol <code>:wait_readable</code> instead.
|
|
1361
1362
|
#
|
|
1362
1363
|
# ### See
|
|
1363
1364
|
# * Socket#recvfrom
|
|
@@ -72,7 +72,7 @@ class TCPServer < TCPSocket
|
|
|
72
72
|
#
|
|
73
73
|
# By specifying a keyword argument *exception* to `false`, you can indicate that
|
|
74
74
|
# accept_nonblock should not raise an IO::WaitReadable exception, but return the
|
|
75
|
-
# symbol
|
|
75
|
+
# symbol <code>:wait_readable</code> instead.
|
|
76
76
|
#
|
|
77
77
|
# ### See
|
|
78
78
|
# * TCPServer#accept
|
|
@@ -68,7 +68,7 @@ class TCPSocket < IPSocket
|
|
|
68
68
|
# The `connect_timeout` specifies the timeout in seconds from the start of
|
|
69
69
|
# the connection attempt to the last candidate.
|
|
70
70
|
# By default, all connection attempts continue until the timeout occurs.
|
|
71
|
-
# When
|
|
71
|
+
# When <code>fast_fallback:false</code> is explicitly specified,
|
|
72
72
|
# a timeout is set for each connection attempt and any connection attempt
|
|
73
73
|
# that exceeds its timeout will be canceled.
|
|
74
74
|
#
|
|
@@ -81,7 +81,7 @@ class UDPSocket < IPSocket
|
|
|
81
81
|
#
|
|
82
82
|
# By specifying a keyword argument *exception* to `false`, you can indicate that
|
|
83
83
|
# recvfrom_nonblock should not raise an IO::WaitReadable exception, but return
|
|
84
|
-
# the symbol
|
|
84
|
+
# the symbol <code>:wait_readable</code> instead.
|
|
85
85
|
#
|
|
86
86
|
# ### See
|
|
87
87
|
# * Socket#recvfrom
|
|
@@ -50,7 +50,7 @@ class UNIXServer < UNIXSocket
|
|
|
50
50
|
#
|
|
51
51
|
# By specifying a keyword argument *exception* to `false`, you can indicate that
|
|
52
52
|
# accept_nonblock should not raise an IO::WaitReadable exception, but return the
|
|
53
|
-
# symbol
|
|
53
|
+
# symbol <code>:wait_readable</code> instead.
|
|
54
54
|
#
|
|
55
55
|
# ### See
|
|
56
56
|
# * UNIXServer#accept
|