rbs 4.0.0.dev.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 +18 -11
- data/.github/workflows/comments.yml +5 -3
- data/.github/workflows/dependabot.yml +2 -2
- data/.github/workflows/ruby.yml +27 -34
- data/.github/workflows/rust.yml +95 -0
- data/.github/workflows/typecheck.yml +2 -2
- data/.github/workflows/windows.yml +2 -2
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +323 -0
- data/README.md +1 -1
- data/Rakefile +43 -33
- data/Steepfile +1 -0
- data/config.yml +426 -24
- data/core/array.rbs +307 -227
- 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 +55 -34
- data/core/complex.rbs +104 -78
- data/core/dir.rbs +61 -49
- data/core/encoding.rbs +12 -15
- data/core/enumerable.rbs +179 -87
- data/core/enumerator/arithmetic_sequence.rbs +70 -0
- data/core/enumerator.rbs +65 -2
- data/core/errno.rbs +11 -2
- data/core/errors.rbs +58 -29
- data/core/exception.rbs +13 -13
- data/core/fiber.rbs +74 -54
- data/core/file.rbs +280 -177
- data/core/file_test.rbs +3 -3
- data/core/float.rbs +257 -92
- data/core/gc.rbs +425 -281
- data/core/hash.rbs +1045 -739
- data/core/integer.rbs +135 -137
- data/core/io/buffer.rbs +53 -42
- data/core/io/wait.rbs +13 -35
- data/core/io.rbs +192 -144
- data/core/kernel.rbs +216 -155
- data/core/marshal.rbs +4 -4
- data/core/match_data.rbs +15 -13
- data/core/math.rbs +107 -66
- data/core/method.rbs +69 -33
- data/core/module.rbs +244 -106
- data/core/nil_class.rbs +7 -6
- data/core/numeric.rbs +74 -63
- data/core/object.rbs +9 -11
- data/core/object_space.rbs +30 -23
- data/core/pathname.rbs +1322 -0
- data/core/proc.rbs +95 -58
- data/core/process.rbs +222 -202
- data/core/ractor.rbs +371 -515
- data/core/random.rbs +21 -3
- data/core/range.rbs +159 -57
- data/core/rational.rbs +60 -89
- data/core/rbs/unnamed/argf.rbs +60 -53
- data/core/rbs/unnamed/env_class.rbs +19 -14
- data/core/rbs/unnamed/main_class.rbs +123 -0
- data/core/rbs/unnamed/random.rbs +11 -118
- data/core/regexp.rbs +258 -214
- data/core/ruby.rbs +53 -0
- data/core/ruby_vm.rbs +38 -34
- data/core/rubygems/config_file.rbs +5 -5
- data/core/rubygems/errors.rbs +4 -71
- data/core/rubygems/requirement.rbs +5 -5
- data/core/rubygems/rubygems.rbs +16 -82
- data/core/rubygems/version.rbs +2 -3
- data/core/set.rbs +490 -360
- data/core/signal.rbs +26 -16
- data/core/string.rbs +3234 -1285
- data/core/struct.rbs +27 -26
- data/core/symbol.rbs +41 -34
- data/core/thread.rbs +135 -67
- data/core/time.rbs +81 -50
- data/core/trace_point.rbs +41 -35
- data/core/true_class.rbs +2 -2
- data/core/unbound_method.rbs +24 -16
- data/core/warning.rbs +7 -7
- data/docs/aliases.md +79 -0
- data/docs/collection.md +3 -3
- data/docs/config.md +171 -0
- data/docs/encoding.md +56 -0
- data/docs/gem.md +0 -1
- data/docs/inline.md +576 -0
- data/docs/sigs.md +3 -3
- 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 +544 -116
- data/ext/rbs_extension/ast_translation.h +3 -0
- data/ext/rbs_extension/class_constants.c +16 -2
- data/ext/rbs_extension/class_constants.h +8 -0
- data/ext/rbs_extension/extconf.rb +5 -1
- data/ext/rbs_extension/legacy_location.c +33 -56
- data/ext/rbs_extension/legacy_location.h +37 -0
- data/ext/rbs_extension/main.c +44 -35
- data/include/rbs/ast.h +448 -173
- data/include/rbs/defines.h +27 -0
- data/include/rbs/lexer.h +30 -11
- data/include/rbs/location.h +25 -44
- data/include/rbs/parser.h +6 -6
- data/include/rbs/string.h +0 -2
- data/include/rbs/util/rbs_allocator.h +34 -13
- data/include/rbs/util/rbs_assert.h +12 -1
- data/include/rbs/util/rbs_constant_pool.h +0 -3
- data/include/rbs/util/rbs_encoding.h +2 -0
- data/include/rbs/util/rbs_unescape.h +2 -1
- 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 +293 -3
- data/lib/rbs/ast/ruby/comment_block.rb +24 -0
- data/lib/rbs/ast/ruby/declarations.rb +198 -3
- data/lib/rbs/ast/ruby/helpers/constant_helper.rb +4 -0
- data/lib/rbs/ast/ruby/members.rb +532 -22
- data/lib/rbs/ast/type_param.rb +24 -4
- data/lib/rbs/buffer.rb +20 -15
- data/lib/rbs/cli/diff.rb +16 -15
- data/lib/rbs/cli/validate.rb +38 -106
- data/lib/rbs/cli.rb +52 -19
- data/lib/rbs/collection/config/lockfile_generator.rb +14 -2
- data/lib/rbs/collection/sources/git.rb +1 -0
- data/lib/rbs/definition.rb +1 -1
- data/lib/rbs/definition_builder/ancestor_builder.rb +62 -9
- data/lib/rbs/definition_builder/method_builder.rb +20 -0
- data/lib/rbs/definition_builder.rb +147 -25
- data/lib/rbs/diff.rb +7 -1
- data/lib/rbs/environment.rb +227 -74
- data/lib/rbs/environment_loader.rb +0 -6
- data/lib/rbs/errors.rb +27 -18
- data/lib/rbs/inline_parser.rb +342 -6
- data/lib/rbs/location_aux.rb +1 -1
- data/lib/rbs/locator.rb +5 -1
- data/lib/rbs/method_type.rb +5 -3
- data/lib/rbs/parser_aux.rb +20 -7
- 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 +8 -0
- data/lib/rbs/resolver/constant_resolver.rb +2 -2
- data/lib/rbs/resolver/type_name_resolver.rb +116 -38
- data/lib/rbs/subtractor.rb +3 -1
- data/lib/rbs/test/type_check.rb +19 -2
- data/lib/rbs/type_name.rb +1 -1
- data/lib/rbs/types.rb +88 -78
- 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 +1 -2
- data/lib/rdoc/discover.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +1 -1
- data/rbs.gemspec +4 -3
- 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/ast/ruby/annotations.rbs +315 -4
- data/sig/ast/ruby/comment_block.rbs +8 -0
- data/sig/ast/ruby/declarations.rbs +102 -4
- data/sig/ast/ruby/members.rbs +108 -2
- 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 -1
- data/sig/definition_builder.rbs +2 -0
- data/sig/environment.rbs +70 -12
- data/sig/errors.rbs +13 -14
- data/sig/inline_parser.rbs +39 -2
- data/sig/locator.rbs +0 -2
- data/sig/manifest.yaml +0 -1
- data/sig/method_builder.rbs +3 -1
- data/sig/parser.rbs +31 -13
- data/sig/prototype/helpers.rbs +2 -0
- data/sig/resolver/type_name_resolver.rbs +35 -7
- data/sig/source.rbs +3 -3
- data/sig/type_param.rbs +13 -8
- 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 +410 -153
- data/src/lexer.c +1392 -1313
- data/src/lexer.re +3 -0
- data/src/lexstate.c +58 -37
- data/src/location.c +8 -48
- data/src/parser.c +977 -516
- data/src/string.c +0 -48
- data/src/util/rbs_allocator.c +89 -71
- data/src/util/rbs_assert.c +1 -1
- data/src/util/rbs_buffer.c +2 -2
- data/src/util/rbs_constant_pool.c +10 -14
- data/src/util/rbs_encoding.c +4 -8
- data/src/util/rbs_unescape.c +56 -20
- data/stdlib/bigdecimal/0/big_decimal.rbs +116 -98
- data/stdlib/bigdecimal-math/0/big_math.rbs +169 -8
- data/stdlib/cgi/0/core.rbs +9 -393
- data/stdlib/cgi/0/manifest.yaml +1 -0
- data/stdlib/cgi-escape/0/escape.rbs +171 -0
- data/stdlib/coverage/0/coverage.rbs +7 -4
- data/stdlib/date/0/date.rbs +92 -79
- data/stdlib/date/0/date_time.rbs +25 -24
- data/stdlib/delegate/0/delegator.rbs +10 -7
- 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 +748 -347
- data/stdlib/etc/0/etc.rbs +55 -50
- data/stdlib/fileutils/0/fileutils.rbs +158 -139
- data/stdlib/forwardable/0/forwardable.rbs +13 -10
- data/stdlib/io-console/0/io-console.rbs +2 -2
- data/stdlib/json/0/json.rbs +217 -136
- data/stdlib/monitor/0/monitor.rbs +3 -3
- data/stdlib/net-http/0/net-http.rbs +162 -134
- data/stdlib/objspace/0/objspace.rbs +17 -34
- data/stdlib/open-uri/0/open-uri.rbs +48 -8
- data/stdlib/open3/0/open3.rbs +469 -10
- data/stdlib/openssl/0/openssl.rbs +475 -357
- data/stdlib/optparse/0/optparse.rbs +26 -17
- data/stdlib/pathname/0/pathname.rbs +11 -1381
- 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 +65 -12
- 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/rdoc.rbs +1 -1
- data/stdlib/rdoc/0/store.rbs +1 -1
- data/stdlib/resolv/0/resolv.rbs +25 -68
- data/stdlib/ripper/0/ripper.rbs +22 -19
- 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/singleton/0/singleton.rbs +3 -0
- data/stdlib/socket/0/addrinfo.rbs +7 -7
- data/stdlib/socket/0/basic_socket.rbs +3 -3
- data/stdlib/socket/0/ip_socket.rbs +10 -8
- data/stdlib/socket/0/socket.rbs +23 -10
- data/stdlib/socket/0/tcp_server.rbs +1 -1
- data/stdlib/socket/0/tcp_socket.rbs +11 -3
- data/stdlib/socket/0/udp_socket.rbs +1 -1
- data/stdlib/socket/0/unix_server.rbs +1 -1
- data/stdlib/stringio/0/stringio.rbs +1177 -85
- data/stdlib/strscan/0/string_scanner.rbs +27 -25
- data/stdlib/tempfile/0/tempfile.rbs +25 -21
- data/stdlib/time/0/time.rbs +8 -6
- data/stdlib/timeout/0/timeout.rbs +63 -7
- data/stdlib/tsort/0/cyclic.rbs +3 -0
- data/stdlib/tsort/0/tsort.rbs +7 -6
- data/stdlib/uri/0/common.rbs +42 -20
- data/stdlib/uri/0/file.rbs +3 -3
- data/stdlib/uri/0/generic.rbs +26 -18
- 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 +12 -12
- 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
- data/stdlib/zlib/0/zstream.rbs +1 -0
- metadata +50 -6
|
@@ -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)
|
|
@@ -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,10 +485,17 @@ 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
|
#
|
|
492
|
+
# :open_timeout
|
|
493
|
+
# : Specifies the timeout in seconds from the start of the method execution.
|
|
494
|
+
# If this timeout is reached while there are still addresses that have not
|
|
495
|
+
# yet been attempted for connection, no further attempts will be made.
|
|
496
|
+
# If this option is specified together with other timeout options, an
|
|
497
|
+
# `ArgumentError` will be raised.
|
|
498
|
+
#
|
|
491
499
|
# :fast_fallback
|
|
492
500
|
# : Enables the Happy Eyeballs Version 2 algorithm (enabled by default).
|
|
493
501
|
#
|
|
@@ -504,7 +512,9 @@ class Socket < BasicSocket
|
|
|
504
512
|
# }
|
|
505
513
|
#
|
|
506
514
|
def self.tcp: (String host, Integer port, ?String local_host, ?Integer local_port, ?resolv_timeout: Time::_Timeout, ?connect_timeout: Time::_Timeout) -> instance
|
|
507
|
-
| (String host, Integer port, ?String local_host, ?Integer local_port, ?
|
|
515
|
+
| (String host, Integer port, ?String local_host, ?Integer local_port, ?open_timeout: Time::_Timeout) -> instance
|
|
516
|
+
| [T] (String host, Integer port, ?String local_host, ?Integer local_port, ?resolv_timeout: Time::_Timeout, ?connect_timeout: Time::_Timeout) { (instance) -> T } -> T
|
|
517
|
+
| [T] (String host, Integer port, ?String local_host, ?Integer local_port, ?open_timeout: Time::_Timeout) { (instance) -> T } -> T
|
|
508
518
|
|
|
509
519
|
# <!--
|
|
510
520
|
# rdoc-file=ext/socket/lib/socket.rb
|
|
@@ -836,7 +846,7 @@ class Socket < BasicSocket
|
|
|
836
846
|
#
|
|
837
847
|
# By specifying a keyword argument *exception* to `false`, you can indicate that
|
|
838
848
|
# accept_nonblock should not raise an IO::WaitReadable exception, but return the
|
|
839
|
-
# symbol
|
|
849
|
+
# symbol <code>:wait_readable</code> instead.
|
|
840
850
|
#
|
|
841
851
|
# ### See
|
|
842
852
|
# * Socket#accept
|
|
@@ -1090,7 +1100,7 @@ class Socket < BasicSocket
|
|
|
1090
1100
|
#
|
|
1091
1101
|
# By specifying a keyword argument *exception* to `false`, you can indicate that
|
|
1092
1102
|
# connect_nonblock should not raise an IO::WaitWritable exception, but return
|
|
1093
|
-
# the symbol
|
|
1103
|
+
# the symbol <code>:wait_writable</code> instead.
|
|
1094
1104
|
#
|
|
1095
1105
|
# ### See
|
|
1096
1106
|
# * Socket#connect
|
|
@@ -1348,7 +1358,7 @@ class Socket < BasicSocket
|
|
|
1348
1358
|
#
|
|
1349
1359
|
# By specifying a keyword argument *exception* to `false`, you can indicate that
|
|
1350
1360
|
# recvfrom_nonblock should not raise an IO::WaitReadable exception, but return
|
|
1351
|
-
# the symbol
|
|
1361
|
+
# the symbol <code>:wait_readable</code> instead.
|
|
1352
1362
|
#
|
|
1353
1363
|
# ### See
|
|
1354
1364
|
# * Socket#recvfrom
|
|
@@ -3769,6 +3779,9 @@ class Socket::Ifaddr
|
|
|
3769
3779
|
# -->
|
|
3770
3780
|
# Returns the flags of *ifaddr*.
|
|
3771
3781
|
#
|
|
3782
|
+
# The value is bitwise-or of Socket::IFF_* constants such as
|
|
3783
|
+
# Socket::IFF_LOOPBACK.
|
|
3784
|
+
#
|
|
3772
3785
|
def flags: () -> Integer
|
|
3773
3786
|
|
|
3774
3787
|
# <!--
|
|
@@ -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
|
|
@@ -38,7 +38,7 @@ class TCPSocket < IPSocket
|
|
|
38
38
|
|
|
39
39
|
# <!--
|
|
40
40
|
# rdoc-file=ext/socket/tcpsocket.c
|
|
41
|
-
# - TCPSocket.new(remote_host, remote_port, local_host=nil, local_port=nil, resolv_timeout: nil, connect_timeout: nil, fast_fallback: true)
|
|
41
|
+
# - TCPSocket.new(remote_host, remote_port, local_host=nil, local_port=nil, resolv_timeout: nil, connect_timeout: nil, open_timeout: nil, fast_fallback: true)
|
|
42
42
|
# -->
|
|
43
43
|
# Opens a TCP connection to `remote_host` on `remote_port`. If `local_host` and
|
|
44
44
|
# `local_port` are specified, then those parameters are used on the local end to
|
|
@@ -68,12 +68,20 @@ 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
|
#
|
|
75
|
+
# :open_timeout
|
|
76
|
+
# : Specifies the timeout in seconds from the start of the method execution.
|
|
77
|
+
# If this timeout is reached while there are still addresses that have not
|
|
78
|
+
# yet been attempted for connection, no further attempts will be made.
|
|
79
|
+
# If this option is specified together with other timeout options, an
|
|
80
|
+
# `ArgumentError` will be raised.
|
|
81
|
+
#
|
|
75
82
|
# :fast_fallback
|
|
76
83
|
# : Enables the Happy Eyeballs Version 2 algorithm (enabled by default).
|
|
77
84
|
#
|
|
78
|
-
def initialize: (String remote_host, Integer remote_port, ?String local_host, ?Integer local_port) ->
|
|
85
|
+
def initialize: (String remote_host, Integer remote_port, ?String local_host, ?Integer local_port, ?fast_fallback: boolish, ?resolv_timeout: Integer, ?connect_timeout: Integer) -> void
|
|
86
|
+
| (String remote_host, Integer remote_port, ?String local_host, ?Integer local_port, ?fast_fallback: boolish, ?open_timeout: Integer) -> void
|
|
79
87
|
end
|
|
@@ -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
|