rbs 2.8.4 → 3.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +12 -4
- data/.github/workflows/comments.yml +11 -11
- data/.github/workflows/dependabot.yml +30 -0
- data/.github/workflows/ruby.yml +40 -49
- data/.github/workflows/typecheck.yml +36 -0
- data/.github/workflows/windows.yml +28 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +42 -2
- data/CHANGELOG.md +845 -1
- data/README.md +64 -4
- data/Rakefile +198 -18
- data/Steepfile +11 -11
- data/config.yml +311 -0
- data/core/array.rbs +2189 -1914
- data/core/basic_object.rbs +59 -84
- data/core/binding.rbs +7 -69
- data/core/builtin.rbs +210 -11
- data/core/class.rbs +37 -0
- data/core/comparable.rbs +23 -25
- data/core/complex.rbs +449 -227
- data/core/constants.rbs +29 -21
- data/core/data.rbs +415 -0
- data/core/dir.rbs +698 -415
- data/core/encoding.rbs +468 -843
- data/core/enumerable.rbs +495 -455
- data/core/enumerator/product.rbs +92 -0
- data/core/enumerator.rbs +106 -9
- data/core/env.rbs +1 -1
- data/core/errno.rbs +506 -605
- data/core/errors.rbs +15 -17
- data/core/exception.rbs +361 -145
- data/core/false_class.rbs +39 -26
- data/core/fiber.rbs +121 -14
- data/core/file.rbs +1262 -320
- data/core/file_test.rbs +62 -45
- data/core/float.rbs +187 -208
- data/core/gc.rbs +446 -196
- data/core/global_variables.rbs +29 -29
- data/core/hash.rbs +242 -349
- data/core/integer.rbs +246 -308
- data/core/io/buffer.rbs +373 -122
- data/core/io/wait.rbs +29 -17
- data/core/io.rbs +1881 -1518
- data/core/kernel.rbs +2116 -1538
- data/core/marshal.rbs +24 -14
- data/core/match_data.rbs +413 -166
- data/core/math.rbs +531 -291
- data/core/method.rbs +101 -32
- data/core/module.rbs +228 -64
- data/core/nil_class.rbs +106 -47
- data/core/numeric.rbs +206 -292
- data/core/object.rbs +73 -1168
- data/core/object_space/weak_key_map.rbs +166 -0
- data/core/object_space.rbs +5 -3
- data/core/proc.rbs +280 -39
- data/core/process.rbs +1318 -658
- data/core/ractor.rbs +200 -134
- data/core/random.rbs +21 -4
- data/core/range.rbs +309 -153
- data/core/rational.rbs +4 -12
- data/core/rb_config.rbs +64 -43
- data/core/rbs/unnamed/argf.rbs +411 -147
- data/core/rbs/unnamed/env_class.rbs +137 -253
- data/core/rbs/unnamed/random.rbs +49 -26
- data/core/refinement.rbs +16 -1
- data/core/regexp.rbs +1568 -862
- data/core/ruby_vm.rbs +719 -7
- data/core/rubygems/config_file.rbs +3 -0
- data/core/rubygems/errors.rbs +69 -6
- data/core/rubygems/rubygems.rbs +71 -17
- data/core/rubygems/version.rbs +11 -7
- data/{stdlib/set/0 → core}/set.rbs +80 -91
- data/core/signal.rbs +14 -8
- data/core/string.rbs +1732 -1607
- data/core/struct.rbs +467 -95
- data/core/symbol.rbs +215 -245
- data/core/thread.rbs +133 -89
- data/core/thread_group.rbs +9 -9
- data/core/time.rbs +1141 -841
- data/core/trace_point.rbs +181 -121
- data/core/true_class.rbs +58 -32
- data/core/unbound_method.rbs +103 -30
- data/core/warning.rbs +50 -5
- data/docs/CONTRIBUTING.md +1 -1
- data/docs/architecture.md +110 -0
- data/docs/collection.md +59 -5
- data/docs/data_and_struct.md +86 -0
- data/docs/gem.md +57 -0
- data/docs/rbs_by_example.md +16 -35
- data/docs/repo.md +1 -1
- data/docs/sigs.md +7 -7
- data/docs/stdlib.md +63 -5
- data/docs/syntax.md +255 -61
- data/docs/tools.md +1 -0
- data/ext/rbs_extension/extconf.rb +10 -0
- data/ext/rbs_extension/lexer.c +1741 -1548
- data/ext/rbs_extension/lexer.h +11 -1
- data/ext/rbs_extension/lexer.re +12 -6
- data/ext/rbs_extension/lexstate.c +26 -3
- data/ext/rbs_extension/location.c +119 -111
- data/ext/rbs_extension/location.h +32 -7
- data/ext/rbs_extension/main.c +3 -0
- data/ext/rbs_extension/parser.c +883 -481
- data/ext/rbs_extension/parserstate.c +65 -25
- data/ext/rbs_extension/parserstate.h +13 -3
- data/ext/rbs_extension/rbs_extension.h +1 -10
- data/ext/rbs_extension/unescape.c +7 -47
- data/goodcheck.yml +2 -2
- data/{ext/rbs_extension → include/rbs}/constants.h +26 -15
- data/include/rbs/ruby_objs.h +72 -0
- data/include/rbs.h +7 -0
- data/lib/rbs/annotate/annotations.rb +3 -3
- data/lib/rbs/annotate/formatter.rb +13 -3
- data/lib/rbs/annotate/rdoc_annotator.rb +1 -1
- data/lib/rbs/annotate/rdoc_source.rb +12 -3
- data/lib/rbs/ast/declarations.rb +85 -2
- data/lib/rbs/ast/directives.rb +39 -0
- data/lib/rbs/ast/members.rb +49 -15
- data/lib/rbs/ast/type_param.rb +104 -15
- data/lib/rbs/ast/visitor.rb +137 -0
- data/lib/rbs/buffer.rb +5 -0
- data/lib/rbs/cli/colored_io.rb +48 -0
- data/lib/rbs/cli/diff.rb +83 -0
- data/lib/rbs/cli/validate.rb +356 -0
- data/lib/rbs/cli.rb +253 -143
- data/lib/rbs/collection/cleaner.rb +8 -1
- data/lib/rbs/collection/config/lockfile.rb +92 -0
- data/lib/rbs/collection/config/lockfile_generator.rb +154 -65
- data/lib/rbs/collection/config.rb +19 -46
- data/lib/rbs/collection/installer.rb +12 -13
- data/lib/rbs/collection/sources/base.rb +2 -2
- data/lib/rbs/collection/sources/git.rb +146 -69
- data/lib/rbs/collection/sources/local.rb +81 -0
- data/lib/rbs/collection/sources/rubygems.rb +10 -12
- data/lib/rbs/collection/sources/stdlib.rb +14 -13
- data/lib/rbs/collection/sources.rb +15 -2
- data/lib/rbs/collection.rb +2 -1
- data/lib/rbs/definition.rb +13 -16
- data/lib/rbs/definition_builder/ancestor_builder.rb +100 -24
- data/lib/rbs/definition_builder/method_builder.rb +4 -4
- data/lib/rbs/definition_builder.rb +489 -584
- data/lib/rbs/diff.rb +125 -0
- data/lib/rbs/environment/use_map.rb +77 -0
- data/lib/rbs/environment.rb +406 -105
- data/lib/rbs/environment_loader.rb +48 -44
- data/lib/rbs/environment_walker.rb +1 -1
- data/lib/rbs/errors.rb +175 -56
- data/lib/rbs/file_finder.rb +28 -0
- data/lib/rbs/location_aux.rb +8 -7
- data/lib/rbs/locator.rb +37 -15
- data/lib/rbs/method_type.rb +23 -0
- data/lib/rbs/namespace.rb +1 -0
- data/lib/rbs/parser/lex_result.rb +15 -0
- data/lib/rbs/parser/token.rb +23 -0
- data/lib/rbs/parser_aux.rb +22 -13
- data/lib/rbs/prototype/helpers.rb +48 -22
- data/lib/rbs/prototype/node_usage.rb +99 -0
- data/lib/rbs/prototype/rb.rb +125 -31
- data/lib/rbs/prototype/rbi.rb +49 -36
- data/lib/rbs/prototype/runtime/helpers.rb +59 -0
- data/lib/rbs/prototype/runtime/reflection.rb +19 -0
- data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
- data/lib/rbs/prototype/runtime.rb +273 -159
- data/lib/rbs/resolver/constant_resolver.rb +24 -8
- data/lib/rbs/resolver/type_name_resolver.rb +41 -7
- data/lib/rbs/sorter.rb +153 -123
- data/lib/rbs/substitution.rb +19 -0
- data/lib/rbs/subtractor.rb +201 -0
- data/lib/rbs/test/errors.rb +24 -11
- data/lib/rbs/test/guaranteed.rb +30 -0
- data/lib/rbs/test/hook.rb +45 -40
- data/lib/rbs/test/setup.rb +1 -1
- data/lib/rbs/test/tester.rb +1 -1
- data/lib/rbs/test/type_check.rb +120 -23
- data/lib/rbs/test.rb +6 -3
- data/lib/rbs/type_alias_dependency.rb +13 -3
- data/lib/rbs/type_alias_regularity.rb +21 -14
- data/lib/rbs/type_name.rb +18 -13
- data/lib/rbs/types.rb +352 -18
- data/lib/rbs/unit_test/convertibles.rb +176 -0
- data/lib/rbs/unit_test/spy.rb +136 -0
- data/lib/rbs/unit_test/type_assertions.rb +341 -0
- data/lib/rbs/unit_test/with_aliases.rb +143 -0
- data/lib/rbs/unit_test.rb +6 -0
- data/lib/rbs/validator.rb +55 -30
- data/lib/rbs/variance_calculator.rb +26 -23
- data/lib/rbs/vendorer.rb +3 -3
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +69 -22
- data/lib/rbs.rb +7 -2
- data/lib/rdoc/discover.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +5 -5
- data/rbs.gemspec +12 -2
- data/schema/decls.json +1 -1
- data/schema/members.json +15 -10
- data/sig/ancestor_builder.rbs +4 -0
- data/sig/ancestor_graph.rbs +22 -2
- data/sig/annotate/formatter.rbs +2 -2
- data/sig/annotate/rdoc_annotater.rbs +1 -1
- data/sig/cli/colored_io.rbs +15 -0
- data/sig/cli/diff.rbs +21 -0
- data/sig/cli/validate.rbs +43 -0
- data/sig/cli.rbs +4 -0
- data/sig/collection/config/lockfile.rbs +74 -0
- data/sig/collection/config/lockfile_generator.rbs +66 -0
- data/sig/collection/config.rbs +5 -48
- data/sig/collection/installer.rbs +1 -1
- data/sig/collection/sources.rbs +105 -33
- data/sig/constant.rbs +1 -1
- data/sig/declarations.rbs +42 -3
- data/sig/definition.rbs +26 -10
- data/sig/definition_builder.rbs +103 -81
- data/sig/diff.rbs +28 -0
- data/sig/directives.rbs +61 -0
- data/sig/environment.rbs +175 -29
- data/sig/environment_loader.rbs +20 -18
- data/sig/errors.rbs +123 -2
- data/sig/file_finder.rbs +28 -0
- data/sig/location.rbs +0 -3
- data/sig/locator.rbs +14 -2
- data/sig/manifest.yaml +0 -1
- data/sig/members.rbs +32 -9
- data/sig/method_types.rbs +10 -4
- data/sig/namespace.rbs +2 -3
- data/sig/parser.rbs +55 -16
- data/sig/prototype/helpers.rbs +4 -0
- data/sig/prototype/node_usage.rbs +20 -0
- data/sig/prototype/rb.rbs +10 -2
- data/sig/prototype/rbi.rbs +2 -0
- data/sig/prototype/runtime.rbs +182 -0
- data/sig/rbs.rbs +1 -1
- data/sig/rdoc/rbs.rbs +4 -0
- data/sig/repository.rbs +7 -5
- data/sig/resolver/constant_resolver.rbs +3 -4
- data/sig/resolver/context.rbs +1 -1
- data/sig/resolver/type_name_resolver.rbs +5 -1
- data/sig/shims/bundler.rbs +38 -0
- data/sig/shims/rubygems.rbs +19 -0
- data/sig/sorter.rbs +23 -5
- data/sig/substitution.rbs +6 -0
- data/sig/subtractor.rbs +37 -0
- data/sig/test/errors.rbs +52 -0
- data/sig/test/guranteed.rbs +9 -0
- data/sig/test/type_check.rbs +19 -0
- data/sig/test.rbs +82 -0
- data/sig/type_alias_dependency.rbs +31 -0
- data/sig/type_alias_regularity.rbs +12 -6
- data/sig/type_param.rbs +45 -9
- data/sig/typename.rbs +8 -5
- data/sig/types.rbs +119 -12
- data/sig/unit_test/convertibles.rbs +154 -0
- data/sig/unit_test/spy.rbs +28 -0
- data/sig/unit_test/type_assertions.rbs +194 -0
- data/sig/unit_test/with_aliases.rbs +136 -0
- data/sig/use_map.rbs +35 -0
- data/sig/validator.rbs +12 -5
- data/sig/variance_calculator.rbs +3 -1
- data/sig/vendorer.rbs +1 -1
- data/sig/visitor.rbs +47 -0
- data/sig/writer.rbs +6 -2
- data/src/constants.c +153 -0
- data/src/ruby_objs.c +793 -0
- data/stdlib/base64/0/base64.rbs +298 -45
- data/stdlib/benchmark/0/benchmark.rbs +12 -3
- data/stdlib/bigdecimal/0/big_decimal.rbs +62 -198
- data/stdlib/cgi/0/core.rbs +68 -15
- data/stdlib/cgi/0/manifest.yaml +1 -0
- data/stdlib/coverage/0/coverage.rbs +50 -11
- data/stdlib/csv/0/csv.rbs +90 -119
- data/stdlib/csv/0/manifest.yaml +1 -0
- data/stdlib/date/0/date.rbs +806 -735
- data/stdlib/date/0/date_time.rbs +70 -211
- data/stdlib/dbm/0/dbm.rbs +0 -2
- data/stdlib/delegate/0/delegator.rbs +184 -0
- data/stdlib/delegate/0/kernel.rbs +47 -0
- data/stdlib/delegate/0/simple_delegator.rbs +96 -0
- data/stdlib/did_you_mean/0/did_you_mean.rbs +3 -8
- data/stdlib/digest/0/digest.rbs +48 -35
- data/stdlib/erb/0/erb.rbs +15 -39
- data/stdlib/etc/0/etc.rbs +174 -54
- data/stdlib/fileutils/0/fileutils.rbs +1234 -385
- data/stdlib/forwardable/0/forwardable.rbs +4 -4
- data/stdlib/io-console/0/io-console.rbs +82 -17
- data/stdlib/ipaddr/0/ipaddr.rbs +11 -6
- data/stdlib/json/0/json.rbs +434 -151
- data/stdlib/kconv/0/kconv.rbs +166 -0
- data/stdlib/logger/0/formatter.rbs +0 -2
- data/stdlib/logger/0/log_device.rbs +1 -3
- data/stdlib/logger/0/logger.rbs +465 -328
- 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 +7 -7
- 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 +91 -10
- data/stdlib/mutex_m/0/mutex_m.rbs +0 -2
- data/stdlib/net-http/0/manifest.yaml +1 -1
- data/stdlib/net-http/0/net-http.rbs +3858 -964
- data/stdlib/net-protocol/0/manifest.yaml +2 -0
- data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
- data/stdlib/net-smtp/0/manifest.yaml +2 -0
- data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
- data/stdlib/nkf/0/nkf.rbs +35 -5
- data/stdlib/objspace/0/objspace.rbs +40 -18
- data/stdlib/observable/0/observable.rbs +217 -0
- data/stdlib/open-uri/0/manifest.yaml +4 -0
- data/stdlib/open-uri/0/open-uri.rbs +393 -0
- data/stdlib/open3/0/open3.rbs +147 -0
- data/stdlib/openssl/0/manifest.yaml +1 -0
- data/stdlib/openssl/0/openssl.rbs +681 -316
- data/stdlib/optparse/0/optparse.rbs +100 -65
- data/stdlib/pathname/0/pathname.rbs +24 -15
- data/stdlib/pp/0/manifest.yaml +2 -0
- data/stdlib/pp/0/pp.rbs +300 -0
- data/stdlib/prettyprint/0/prettyprint.rbs +2 -6
- data/stdlib/pstore/0/pstore.rbs +370 -156
- data/stdlib/psych/0/core_ext.rbs +12 -0
- data/stdlib/{yaml → psych}/0/dbm.rbs +3 -3
- data/stdlib/psych/0/manifest.yaml +3 -0
- data/stdlib/psych/0/psych.rbs +402 -0
- data/stdlib/{yaml → psych}/0/store.rbs +2 -2
- data/stdlib/pty/0/pty.rbs +63 -11
- data/stdlib/rdoc/0/code_object.rbs +51 -0
- data/stdlib/rdoc/0/comment.rbs +59 -0
- data/stdlib/rdoc/0/context.rbs +153 -0
- data/stdlib/rdoc/0/markup.rbs +117 -0
- data/stdlib/rdoc/0/parser.rbs +56 -0
- data/stdlib/rdoc/0/rdoc.rbs +13 -380
- data/stdlib/rdoc/0/ri.rbs +17 -0
- data/stdlib/rdoc/0/store.rbs +48 -0
- data/stdlib/rdoc/0/top_level.rbs +97 -0
- data/stdlib/resolv/0/resolv.rbs +16 -79
- data/stdlib/ripper/0/ripper.rbs +1648 -0
- data/stdlib/securerandom/0/securerandom.rbs +7 -2
- data/stdlib/shellwords/0/shellwords.rbs +11 -12
- data/stdlib/singleton/0/singleton.rbs +0 -3
- data/stdlib/socket/0/addrinfo.rbs +13 -18
- data/stdlib/socket/0/basic_socket.rbs +5 -10
- data/stdlib/socket/0/ip_socket.rbs +0 -2
- data/stdlib/socket/0/socket.rbs +77 -46
- data/stdlib/socket/0/tcp_server.rbs +0 -5
- data/stdlib/socket/0/tcp_socket.rbs +36 -3
- data/stdlib/socket/0/udp_socket.rbs +4 -5
- data/stdlib/socket/0/unix_server.rbs +0 -5
- data/stdlib/socket/0/unix_socket.rbs +2 -4
- data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +188 -107
- data/stdlib/strscan/0/string_scanner.rbs +1269 -425
- data/stdlib/tempfile/0/tempfile.rbs +224 -61
- data/stdlib/time/0/time.rbs +48 -35
- data/stdlib/timeout/0/timeout.rbs +17 -8
- data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
- data/stdlib/tsort/0/tsort.rbs +0 -4
- data/stdlib/uri/0/common.rbs +271 -144
- data/stdlib/uri/0/file.rbs +5 -0
- data/stdlib/uri/0/ftp.rbs +1 -1
- data/stdlib/uri/0/generic.rbs +26 -22
- data/stdlib/uri/0/http.rbs +4 -4
- data/stdlib/uri/0/ldap.rbs +1 -1
- data/stdlib/uri/0/mailto.rbs +84 -0
- data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
- data/stdlib/yaml/0/manifest.yaml +1 -2
- data/stdlib/yaml/0/yaml.rbs +1 -199
- data/stdlib/zlib/0/buf_error.rbs +10 -0
- data/stdlib/zlib/0/data_error.rbs +10 -0
- data/stdlib/zlib/0/deflate.rbs +210 -0
- data/stdlib/zlib/0/error.rbs +20 -0
- data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
- data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
- data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
- data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
- data/stdlib/zlib/0/gzip_file.rbs +156 -0
- data/stdlib/zlib/0/gzip_reader.rbs +293 -0
- data/stdlib/zlib/0/gzip_writer.rbs +166 -0
- data/stdlib/zlib/0/inflate.rbs +180 -0
- data/stdlib/zlib/0/mem_error.rbs +10 -0
- data/stdlib/zlib/0/need_dict.rbs +13 -0
- data/stdlib/zlib/0/stream_end.rbs +11 -0
- data/stdlib/zlib/0/stream_error.rbs +11 -0
- data/stdlib/zlib/0/version_error.rbs +11 -0
- data/stdlib/zlib/0/zlib.rbs +1 -3
- data/stdlib/zlib/0/zstream.rbs +200 -0
- data/templates/include/rbs/constants.h.erb +20 -0
- data/templates/include/rbs/ruby_objs.h.erb +10 -0
- data/templates/src/constants.c.erb +36 -0
- data/templates/src/ruby_objs.c.erb +27 -0
- data/templates/template.rb +122 -0
- metadata +136 -36
- data/Gemfile +0 -33
- data/Gemfile.lock +0 -118
- data/core/deprecated.rbs +0 -9
- data/ext/rbs_extension/constants.c +0 -135
- data/ext/rbs_extension/ruby_objs.c +0 -525
- data/ext/rbs_extension/ruby_objs.h +0 -43
- data/lib/rbs/constant_table.rb +0 -167
- data/lib/rbs/parser_compat/lexer_error.rb +0 -6
- data/lib/rbs/parser_compat/located_value.rb +0 -7
- data/lib/rbs/parser_compat/semantics_error.rb +0 -6
- data/lib/rbs/parser_compat/syntax_error.rb +0 -6
- data/lib/rbs/test/spy.rb +0 -6
- data/lib/rbs/type_name_resolver.rb +0 -67
- data/sig/constant_table.rbs +0 -30
- data/sig/shims/abstract_syntax_tree.rbs +0 -25
- data/sig/shims/pp.rbs +0 -3
- data/sig/shims/ripper.rbs +0 -8
- data/sig/shims.rbs +0 -69
- data/sig/type_name_resolver.rbs +0 -26
- data/stdlib/minitest/0/manifest.yaml +0 -2
- data/stdlib/prime/0/integer-extension.rbs +0 -41
- data/stdlib/prime/0/manifest.yaml +0 -2
- data/stdlib/prime/0/prime.rbs +0 -372
@@ -14,7 +14,6 @@
|
|
14
14
|
# * /dev/urandom
|
15
15
|
# * Win32
|
16
16
|
#
|
17
|
-
#
|
18
17
|
# SecureRandom is extended by the Random::Formatter module which defines the
|
19
18
|
# following methods:
|
20
19
|
#
|
@@ -29,7 +28,6 @@
|
|
29
28
|
# * urlsafe_base64
|
30
29
|
# * uuid
|
31
30
|
#
|
32
|
-
#
|
33
31
|
# These methods are usable as class methods of SecureRandom such as
|
34
32
|
# `SecureRandom.hex`.
|
35
33
|
#
|
@@ -39,6 +37,13 @@
|
|
39
37
|
module SecureRandom
|
40
38
|
extend Random::Formatter
|
41
39
|
|
40
|
+
# <!--
|
41
|
+
# rdoc-file=lib/securerandom.rb
|
42
|
+
# - alphanumeric(n = nil, chars: ALPHANUMERIC)
|
43
|
+
# -->
|
44
|
+
# Compatibility methods for Ruby 3.2, we can remove this after dropping to
|
45
|
+
# support Ruby 3.2
|
46
|
+
#
|
42
47
|
def self.alphanumeric: (?Integer?) -> String
|
43
48
|
|
44
49
|
def self.base64: (?Integer?) -> String
|
@@ -4,9 +4,11 @@
|
|
4
4
|
# This module manipulates strings according to the word parsing rules of the
|
5
5
|
# UNIX Bourne shell.
|
6
6
|
#
|
7
|
-
# The shellwords() function was originally a port of shellwords.pl, but
|
8
|
-
# to conform to the Shell & Utilities volume of the IEEE Std
|
9
|
-
#
|
7
|
+
# The `shellwords()` function was originally a port of shellwords.pl, but
|
8
|
+
# modified to conform to [the Shell & Utilities volume of the IEEE Std
|
9
|
+
# 1003.1-2008, 2016
|
10
|
+
# Edition](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.ht
|
11
|
+
# ml)
|
10
12
|
#
|
11
13
|
# ### Usage
|
12
14
|
#
|
@@ -58,17 +60,9 @@
|
|
58
60
|
# * Wakou Aoyama
|
59
61
|
# * Akinori MUSHA <knu@iDaemons.org>
|
60
62
|
#
|
61
|
-
#
|
62
63
|
# ### Contact
|
63
64
|
# * Akinori MUSHA <knu@iDaemons.org> (current maintainer)
|
64
65
|
#
|
65
|
-
#
|
66
|
-
# ### Resources
|
67
|
-
#
|
68
|
-
# 1: [IEEE Std 1003.1-2008, 2016 Edition, the Shell & Utilities
|
69
|
-
# volume](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.htm
|
70
|
-
# l)
|
71
|
-
#
|
72
66
|
module Shellwords
|
73
67
|
# <!--
|
74
68
|
# rdoc-file=lib/shellwords.rb
|
@@ -77,6 +71,8 @@ module Shellwords
|
|
77
71
|
# Escapes a string so that it can be safely used in a Bourne shell command line.
|
78
72
|
# `str` can be a non-string object that responds to `to_s`.
|
79
73
|
#
|
74
|
+
# `str` must not contain NUL characters because of nature of `exec` system call.
|
75
|
+
#
|
80
76
|
# Note that a resulted string should be used unquoted and is not intended for
|
81
77
|
# use in double quotes nor in single quotes.
|
82
78
|
#
|
@@ -114,7 +110,7 @@ module Shellwords
|
|
114
110
|
#
|
115
111
|
# All elements are joined into a single string with fields separated by a space,
|
116
112
|
# where each element is escaped for the Bourne shell and stringified using
|
117
|
-
# `to_s`.
|
113
|
+
# `to_s`. See also Shellwords.shellescape.
|
118
114
|
#
|
119
115
|
# ary = ["There's", "a", "time", "and", "place", "for", "everything"]
|
120
116
|
# argv = Shellwords.join(ary)
|
@@ -142,6 +138,9 @@ module Shellwords
|
|
142
138
|
# argv = Shellwords.split('here are "two words"')
|
143
139
|
# argv #=> ["here", "are", "two words"]
|
144
140
|
#
|
141
|
+
# `line` must not contain NUL characters because of nature of `exec` system
|
142
|
+
# call.
|
143
|
+
#
|
145
144
|
# Note, however, that this is not a command line parser. Shell metacharacters
|
146
145
|
# except for the single and double quotes and backslash are not treated as such.
|
147
146
|
#
|
@@ -53,7 +53,6 @@
|
|
53
53
|
# * Overriding Klass#clone and Klass#dup to raise TypeErrors to prevent
|
54
54
|
# cloning or duping.
|
55
55
|
#
|
56
|
-
#
|
57
56
|
# ## Singleton and Marshal
|
58
57
|
#
|
59
58
|
# By default Singleton's #_dump(depth) returns the empty string. Marshalling by
|
@@ -101,8 +100,6 @@ module Singleton
|
|
101
100
|
#
|
102
101
|
def self.instance: () -> instance
|
103
102
|
|
104
|
-
public
|
105
|
-
|
106
103
|
# <!--
|
107
104
|
# rdoc-file=lib/singleton.rb
|
108
105
|
# - _dump(depth = -1)
|
@@ -1,3 +1,7 @@
|
|
1
|
+
# <!-- rdoc-file=ext/socket/raddrinfo.c -->
|
2
|
+
# The Addrinfo class maps `struct addrinfo` to ruby. This structure identifies
|
3
|
+
# an Internet host and a service.
|
4
|
+
#
|
1
5
|
class Addrinfo
|
2
6
|
# <!--
|
3
7
|
# rdoc-file=ext/socket/lib/socket.rb
|
@@ -106,8 +110,6 @@ class Addrinfo
|
|
106
110
|
#
|
107
111
|
def self.unix: (String path, ?Symbol socktype) -> Addrinfo
|
108
112
|
|
109
|
-
public
|
110
|
-
|
111
113
|
# <!--
|
112
114
|
# rdoc-file=ext/socket/raddrinfo.c
|
113
115
|
# - addrinfo.afamily => integer
|
@@ -403,7 +405,7 @@ class Addrinfo
|
|
403
405
|
# rdoc-file=ext/socket/raddrinfo.c
|
404
406
|
# - ipv6_linklocal?()
|
405
407
|
# -->
|
406
|
-
# Returns true for IPv6 link local address (
|
408
|
+
# Returns true for IPv6 link local address (fe80::/10). It returns false
|
407
409
|
# otherwise.
|
408
410
|
#
|
409
411
|
def ipv6_linklocal?: () -> bool
|
@@ -474,7 +476,7 @@ class Addrinfo
|
|
474
476
|
# rdoc-file=ext/socket/raddrinfo.c
|
475
477
|
# - ipv6_sitelocal?()
|
476
478
|
# -->
|
477
|
-
# Returns true for IPv6 site local address (
|
479
|
+
# Returns true for IPv6 site local address (fec0::/10). It returns false
|
478
480
|
# otherwise.
|
479
481
|
#
|
480
482
|
def ipv6_sitelocal?: () -> bool
|
@@ -632,20 +634,13 @@ class Addrinfo
|
|
632
634
|
# sockaddr as generated by Socket.sockaddr_in or Socket.unpack_sockaddr_un.
|
633
635
|
#
|
634
636
|
# sockaddr examples:
|
635
|
-
#
|
636
|
-
#
|
637
|
-
#
|
638
|
-
#
|
639
|
-
#
|
640
|
-
#
|
641
|
-
#
|
642
|
-
# "AF_UNIX", "/tmp/sock"
|
643
|
-
# :
|
644
|
-
# * Socket.sockaddr_in("smtp", "2001:DB8::1")
|
645
|
-
# * Socket.sockaddr_in(80, "172.18.22.42")
|
646
|
-
# * Socket.sockaddr_in(80, "www.ruby-lang.org")
|
647
|
-
# * Socket.sockaddr_un("/tmp/sock")
|
648
|
-
#
|
637
|
+
# * `["AF_INET", 46102, "localhost.localdomain", "127.0.0.1"]`
|
638
|
+
# * `["AF_INET6", 42304, "ip6-localhost", "::1"]`
|
639
|
+
# * `["AF_UNIX", "/tmp/sock"]`
|
640
|
+
# * `Socket.sockaddr_in("smtp", "2001:DB8::1")`
|
641
|
+
# * `Socket.sockaddr_in(80, "172.18.22.42")`
|
642
|
+
# * `Socket.sockaddr_in(80, "www.ruby-lang.org")`
|
643
|
+
# * `Socket.sockaddr_un("/tmp/sock")`
|
649
644
|
#
|
650
645
|
# In an AF_INET/AF_INET6 sockaddr array, the 4th element, numeric IP address, is
|
651
646
|
# used to construct socket address in the Addrinfo instance. If the 3rd element,
|
@@ -41,8 +41,6 @@ class BasicSocket < IO
|
|
41
41
|
#
|
42
42
|
def self.for_fd: (Integer fileno) -> BasicSocket
|
43
43
|
|
44
|
-
public
|
45
|
-
|
46
44
|
# <!--
|
47
45
|
# rdoc-file=ext/socket/basicsocket.c
|
48
46
|
# - basicsocket.close_read => nil
|
@@ -84,7 +82,6 @@ class BasicSocket < IO
|
|
84
82
|
# (127.0.0.1).
|
85
83
|
# * IPv6 unspecified address (::) is replaced by IPv6 loopback address (::1).
|
86
84
|
#
|
87
|
-
#
|
88
85
|
# If the local address is not suitable for connect, SocketError is raised. IPv4
|
89
86
|
# and IPv6 address which port is 0 is not suitable for connect. Unix domain
|
90
87
|
# socket which has no path is not suitable for connect.
|
@@ -204,7 +201,6 @@ class BasicSocket < IO
|
|
204
201
|
# Socket::SO_REUSEADDR. A string or symbol of the name, possibly without
|
205
202
|
# prefix, is also accepted.
|
206
203
|
#
|
207
|
-
#
|
208
204
|
# ### Examples
|
209
205
|
#
|
210
206
|
# Some socket options are integers with boolean values, in this case #getsockopt
|
@@ -293,8 +289,10 @@ class BasicSocket < IO
|
|
293
289
|
# is set for the underlying file descriptor. *flags* is zero or more of the
|
294
290
|
# `MSG_` options. The result, *mesg*, is the data received.
|
295
291
|
#
|
296
|
-
# When recvfrom(2) returns 0, Socket#recv_nonblock returns
|
297
|
-
#
|
292
|
+
# When recvfrom(2) returns 0, Socket#recv_nonblock returns nil. In most cases it
|
293
|
+
# means the connection was closed, but for UDP connections it may mean an empty
|
294
|
+
# packet was received, as the underlying API makes it impossible to distinguish
|
295
|
+
# these two cases.
|
298
296
|
#
|
299
297
|
# ### Parameters
|
300
298
|
# * `maxlen` - the number of bytes to receive from the socket
|
@@ -302,7 +300,6 @@ class BasicSocket < IO
|
|
302
300
|
# * `buf` - destination String buffer
|
303
301
|
# * `options` - keyword hash, supporting `exception: false`
|
304
302
|
#
|
305
|
-
#
|
306
303
|
# ### Example
|
307
304
|
# serv = TCPServer.new("127.0.0.1", 0)
|
308
305
|
# af, port, host, addr = serv.addr
|
@@ -518,10 +515,8 @@ class BasicSocket < IO
|
|
518
515
|
# int is passed as for an Integer. Note that `false` must be passed, not
|
519
516
|
# `nil`.
|
520
517
|
# * String: the string's data and length is passed to the socket.
|
521
|
-
#
|
522
518
|
# * `socketoption` is an instance of Socket::Option
|
523
519
|
#
|
524
|
-
#
|
525
520
|
# ### Examples
|
526
521
|
#
|
527
522
|
# Some socket options are integers with boolean values, in this case #setsockopt
|
@@ -579,7 +574,7 @@ class BasicSocket < IO
|
|
579
574
|
#
|
580
575
|
# }
|
581
576
|
#
|
582
|
-
def shutdown: (
|
577
|
+
def shutdown: (interned | Integer flags) -> void
|
583
578
|
|
584
579
|
private
|
585
580
|
|
data/stdlib/socket/0/socket.rbs
CHANGED
@@ -22,12 +22,10 @@
|
|
22
22
|
# * Socket::PF_UNIX
|
23
23
|
# * etc.
|
24
24
|
#
|
25
|
-
#
|
26
25
|
# **type:** The type of communications between the two endpoints, typically
|
27
26
|
# * Socket::SOCK_STREAM
|
28
27
|
# * Socket::SOCK_DGRAM.
|
29
28
|
#
|
30
|
-
#
|
31
29
|
# **protocol:** Typically *zero*. This may be used to identify a variant of a
|
32
30
|
# protocol.
|
33
31
|
#
|
@@ -37,7 +35,6 @@
|
|
37
35
|
# * a zero-length string which specifies INADDR_ANY
|
38
36
|
# * an integer (interpreted as binary address in host byte order).
|
39
37
|
#
|
40
|
-
#
|
41
38
|
# ### Quick start
|
42
39
|
#
|
43
40
|
# Many of the classes, such as TCPSocket, UDPSocket or UNIXSocket, ease the use
|
@@ -94,10 +91,13 @@
|
|
94
91
|
#
|
95
92
|
# TCP client socket
|
96
93
|
# : Socket.tcp, TCPSocket.open
|
94
|
+
#
|
97
95
|
# TCP server socket
|
98
96
|
# : Socket.tcp_server_loop, TCPServer.open
|
97
|
+
#
|
99
98
|
# UNIX client socket
|
100
99
|
# : Socket.unix, UNIXSocket.open
|
100
|
+
#
|
101
101
|
# UNIX server socket
|
102
102
|
# : Socket.unix_server_loop, UNIXServer.open
|
103
103
|
#
|
@@ -108,7 +108,6 @@
|
|
108
108
|
# * Sam Roberts
|
109
109
|
# * *Programming Ruby* from The Pragmatic Bookshelf.
|
110
110
|
#
|
111
|
-
#
|
112
111
|
# Much material in this documentation is taken with permission from *Programming
|
113
112
|
# Ruby* from The Pragmatic Bookshelf.
|
114
113
|
#
|
@@ -180,7 +179,6 @@ class Socket < BasicSocket
|
|
180
179
|
# cannot be released since gethostbyname() is not thread safe.)
|
181
180
|
# * This method uses gethostbyname() function already removed from POSIX.
|
182
181
|
#
|
183
|
-
#
|
184
182
|
# This method obtains the host information for *address*.
|
185
183
|
#
|
186
184
|
# p Socket.gethostbyaddr([221,186,184,68].pack("CCCC"))
|
@@ -209,7 +207,6 @@ class Socket < BasicSocket
|
|
209
207
|
# cannot be released since gethostbyname() is not thread safe.)
|
210
208
|
# * This method uses gethostbyname() function already removed from POSIX.
|
211
209
|
#
|
212
|
-
#
|
213
210
|
# This method obtains the host information for *hostname*.
|
214
211
|
#
|
215
212
|
# p Socket.gethostbyname("hal") #=> ["localhost", ["hal"], 2, "\x7F\x00\x00\x01"]
|
@@ -281,7 +278,6 @@ class Socket < BasicSocket
|
|
281
278
|
# * 3-elements array such as ["AF_INET", 80, "127.0.0.1"]
|
282
279
|
# * 4-elements array such as ["AF_INET", 80, ignored, "127.0.0.1"]
|
283
280
|
#
|
284
|
-
#
|
285
281
|
# *flags* should be bitwise OR of Socket::NI_* constants.
|
286
282
|
#
|
287
283
|
# Note: The last form is compatible with IPSocket#addr and IPSocket#peeraddr.
|
@@ -462,15 +458,38 @@ class Socket < BasicSocket
|
|
462
458
|
# -->
|
463
459
|
# creates a new socket object connected to host:port using TCP/IP.
|
464
460
|
#
|
461
|
+
# Starting from Ruby 3.4, this method operates according to the Happy Eyeballs
|
462
|
+
# Version 2 ([RFC 8305](https://datatracker.ietf.org/doc/html/rfc8305))
|
463
|
+
# algorithm by default.
|
464
|
+
#
|
465
|
+
# For details on Happy Eyeballs Version 2, see
|
466
|
+
# [Socket.tcp_fast_fallback=](rdoc-ref:Socket.tcp_fast_fallback=).
|
467
|
+
#
|
468
|
+
# To make it behave the same as in Ruby 3.3 and earlier, explicitly specify the
|
469
|
+
# option fast_fallback:false. Or, setting Socket.tcp_fast_fallback=false will
|
470
|
+
# disable Happy Eyeballs Version 2 not only for this method but for all Socket
|
471
|
+
# globally.
|
472
|
+
#
|
465
473
|
# If local_host:local_port is given, the socket is bound to it.
|
466
474
|
#
|
467
475
|
# The optional last argument *opts* is options represented by a hash. *opts* may
|
468
476
|
# have following options:
|
469
477
|
#
|
470
|
-
# :connect_timeout
|
471
|
-
# : specify the timeout in seconds.
|
472
478
|
# :resolv_timeout
|
473
|
-
# :
|
479
|
+
# : Specifies the timeout in seconds from when the hostname resolution starts.
|
480
|
+
#
|
481
|
+
# :connect_timeout
|
482
|
+
# : This method sequentially attempts connecting to all candidate destination
|
483
|
+
# addresses.
|
484
|
+
# The `connect_timeout` specifies the timeout in seconds from the start of
|
485
|
+
# the connection attempt to the last candidate.
|
486
|
+
# By default, all connection attempts continue until the timeout occurs.
|
487
|
+
# When `fast_fallback:false` is explicitly specified,
|
488
|
+
# a timeout is set for each connection attempt and any connection attempt
|
489
|
+
# that exceeds its timeout will be canceled.
|
490
|
+
#
|
491
|
+
# :fast_fallback
|
492
|
+
# : Enables the Happy Eyeballs Version 2 algorithm (enabled by default).
|
474
493
|
#
|
475
494
|
#
|
476
495
|
# If a block is given, the block is called with the socket. The value of the
|
@@ -484,8 +503,8 @@ class Socket < BasicSocket
|
|
484
503
|
# puts sock.read
|
485
504
|
# }
|
486
505
|
#
|
487
|
-
def self.tcp: (String host, Integer port, ?String local_host, ?Integer local_port, ?resolv_timeout:
|
488
|
-
| (String host, Integer port, ?String local_host, ?Integer local_port, ?resolv_timeout:
|
506
|
+
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, ?resolv_timeout: Time::_Timeout, ?connect_timeout: Time::_Timeout) { (instance) -> void } -> void
|
489
508
|
|
490
509
|
# <!--
|
491
510
|
# rdoc-file=ext/socket/lib/socket.rb
|
@@ -754,8 +773,6 @@ class Socket < BasicSocket
|
|
754
773
|
#
|
755
774
|
def self.unpack_sockaddr_un: (String path) -> String
|
756
775
|
|
757
|
-
public
|
758
|
-
|
759
776
|
# <!--
|
760
777
|
# rdoc-file=ext/socket/socket.c
|
761
778
|
# - socket.accept => [client_socket, client_addrinfo]
|
@@ -836,7 +853,6 @@ class Socket < BasicSocket
|
|
836
853
|
# * `local_sockaddr` - the `struct` sockaddr contained in a string or an
|
837
854
|
# Addrinfo object
|
838
855
|
#
|
839
|
-
#
|
840
856
|
# ### Example
|
841
857
|
# require 'socket'
|
842
858
|
#
|
@@ -877,7 +893,6 @@ class Socket < BasicSocket
|
|
877
893
|
# * Errno::EOPNOTSUPP - the socket type of the `socket` does not support
|
878
894
|
# binding to an address
|
879
895
|
#
|
880
|
-
#
|
881
896
|
# On unix-based based systems if the address family of the calling `socket` is
|
882
897
|
# Socket::AF_UNIX the follow exceptions may be raised if the call to *bind*
|
883
898
|
# fails:
|
@@ -896,7 +911,6 @@ class Socket < BasicSocket
|
|
896
911
|
# *sockaddr* is not a directory
|
897
912
|
# * Errno::EROFS - the name would reside on a read only filesystem
|
898
913
|
#
|
899
|
-
#
|
900
914
|
# ### Windows Exceptions
|
901
915
|
# On Windows systems the following system exceptions may be raised if the call
|
902
916
|
# to *bind* fails:
|
@@ -912,7 +926,6 @@ class Socket < BasicSocket
|
|
912
926
|
# * Errno::ENOBUFS - no buffer space is available
|
913
927
|
# * Errno::ENOTSOCK - the `socket` argument does not refer to a socket
|
914
928
|
#
|
915
|
-
#
|
916
929
|
# ### See
|
917
930
|
# * bind manual pages on unix-based systems
|
918
931
|
# * bind function in Microsoft's Winsock functions reference
|
@@ -930,7 +943,6 @@ class Socket < BasicSocket
|
|
930
943
|
# * `remote_sockaddr` - the `struct` sockaddr contained in a string or
|
931
944
|
# Addrinfo object
|
932
945
|
#
|
933
|
-
#
|
934
946
|
# ### Example:
|
935
947
|
# # Pull down Google's web page
|
936
948
|
# require 'socket'
|
@@ -985,7 +997,6 @@ class Socket < BasicSocket
|
|
985
997
|
# * Errno::ETIMEDOUT - the attempt to connect timed out before a connection
|
986
998
|
# was made.
|
987
999
|
#
|
988
|
-
#
|
989
1000
|
# On unix-based systems if the address family of the calling `socket` is AF_UNIX
|
990
1001
|
# the follow exceptions may be raised if the call to *connect* fails:
|
991
1002
|
# * Errno::EIO - an i/o error occurred while reading from or writing to the
|
@@ -999,7 +1010,6 @@ class Socket < BasicSocket
|
|
999
1010
|
# * Errno::ENOTDIR - a component of the path prefix of the pathname in
|
1000
1011
|
# *sockaddr* is not a directory
|
1001
1012
|
#
|
1002
|
-
#
|
1003
1013
|
# ### Windows Exceptions
|
1004
1014
|
# On Windows systems the following system exceptions may be raised if the call
|
1005
1015
|
# to *connect* fails:
|
@@ -1032,7 +1042,6 @@ class Socket < BasicSocket
|
|
1032
1042
|
# * Errno::EACCES - the attempt to connect the datagram socket to the
|
1033
1043
|
# broadcast address failed
|
1034
1044
|
#
|
1035
|
-
#
|
1036
1045
|
# ### See
|
1037
1046
|
# * connect manual pages on unix-based systems
|
1038
1047
|
# * connect function in Microsoft's Winsock functions reference
|
@@ -1048,7 +1057,8 @@ class Socket < BasicSocket
|
|
1048
1057
|
# otherwise an exception is raised.
|
1049
1058
|
#
|
1050
1059
|
# ### Parameter
|
1051
|
-
#
|
1060
|
+
# * `remote_sockaddr` - the `struct` sockaddr contained in a string or
|
1061
|
+
# Addrinfo object
|
1052
1062
|
#
|
1053
1063
|
# ### Example:
|
1054
1064
|
# # Pull down Google's web page
|
@@ -1083,7 +1093,7 @@ class Socket < BasicSocket
|
|
1083
1093
|
# the symbol `:wait_writable` instead.
|
1084
1094
|
#
|
1085
1095
|
# ### See
|
1086
|
-
#
|
1096
|
+
# * Socket#connect
|
1087
1097
|
#
|
1088
1098
|
def connect_nonblock: (untyped addr, ?exception: untyped) -> (Integer | :wait_writable)
|
1089
1099
|
|
@@ -1106,7 +1116,6 @@ class Socket < BasicSocket
|
|
1106
1116
|
# ### Parameter
|
1107
1117
|
# * `backlog` - the maximum length of the queue for pending connections.
|
1108
1118
|
#
|
1109
|
-
#
|
1110
1119
|
# ### Example 1
|
1111
1120
|
# require 'socket'
|
1112
1121
|
# include Socket::Constants
|
@@ -1143,7 +1152,6 @@ class Socket < BasicSocket
|
|
1143
1152
|
# * Errno::ENOBUFS - insufficient resources are available in the system to
|
1144
1153
|
# complete the call
|
1145
1154
|
#
|
1146
|
-
#
|
1147
1155
|
# ### Windows Exceptions
|
1148
1156
|
# On Windows systems the following system exceptions may be raised if the call
|
1149
1157
|
# to *listen* fails:
|
@@ -1163,7 +1171,6 @@ class Socket < BasicSocket
|
|
1163
1171
|
# * Errno::EOPNOTSUPP - the referenced `socket` is not a type that supports
|
1164
1172
|
# the *listen* method
|
1165
1173
|
#
|
1166
|
-
#
|
1167
1174
|
# ### See
|
1168
1175
|
# * listen manual pages on unix-based systems
|
1169
1176
|
# * listen function in Microsoft's Winsock functions reference
|
@@ -1184,7 +1191,6 @@ class Socket < BasicSocket
|
|
1184
1191
|
# * `maxlen` - the maximum number of bytes to receive from the socket
|
1185
1192
|
# * `flags` - zero or more of the `MSG_` options
|
1186
1193
|
#
|
1187
|
-
#
|
1188
1194
|
# ### Example
|
1189
1195
|
# # In one file, start this first
|
1190
1196
|
# require 'socket'
|
@@ -1240,7 +1246,6 @@ class Socket < BasicSocket
|
|
1240
1246
|
# * Errno::ETIMEDOUT - the connection timed out during connection
|
1241
1247
|
# establishment or due to a transmission timeout on an active connection
|
1242
1248
|
#
|
1243
|
-
#
|
1244
1249
|
# ### Windows Exceptions
|
1245
1250
|
# On Windows systems the following system exceptions may be raised if the call
|
1246
1251
|
# to *recvfrom* fails:
|
@@ -1291,9 +1296,10 @@ class Socket < BasicSocket
|
|
1291
1296
|
# received. The second element, *sender_addrinfo*, contains protocol-specific
|
1292
1297
|
# address information of the sender.
|
1293
1298
|
#
|
1294
|
-
# When recvfrom(2) returns 0, Socket#
|
1295
|
-
#
|
1296
|
-
#
|
1299
|
+
# When recvfrom(2) returns 0, Socket#recv_nonblock returns nil. In most cases it
|
1300
|
+
# means the connection was closed, but for UDP connections it may mean an empty
|
1301
|
+
# packet was received, as the underlying API makes it impossible to distinguish
|
1302
|
+
# these two cases.
|
1297
1303
|
#
|
1298
1304
|
# ### Parameters
|
1299
1305
|
# * `maxlen` - the maximum number of bytes to receive from the socket
|
@@ -1301,7 +1307,6 @@ class Socket < BasicSocket
|
|
1301
1307
|
# * `outbuf` - destination String buffer
|
1302
1308
|
# * `opts` - keyword hash, supporting `exception: false`
|
1303
1309
|
#
|
1304
|
-
#
|
1305
1310
|
# ### Example
|
1306
1311
|
# # In one file, start this first
|
1307
1312
|
# require 'socket'
|
@@ -1416,7 +1421,7 @@ class Socket < BasicSocket
|
|
1416
1421
|
# Socket.new(:UNIX, :STREAM) # UNIX stream socket
|
1417
1422
|
# Socket.new(:UNIX, :DGRAM) # UNIX datagram socket
|
1418
1423
|
#
|
1419
|
-
def initialize: (Symbol domain, Symbol socktype, ?Integer protocol) -> untyped
|
1424
|
+
def initialize: (Symbol | Integer domain, Symbol | Integer socktype, ?Integer protocol) -> untyped
|
1420
1425
|
end
|
1421
1426
|
|
1422
1427
|
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
@@ -1519,8 +1524,8 @@ Socket::AF_IMPLINK: Integer
|
|
1519
1524
|
#
|
1520
1525
|
Socket::AF_INET: Integer
|
1521
1526
|
|
1522
|
-
# <!-- rdoc-file=
|
1523
|
-
# IPv6 protocol
|
1527
|
+
# <!-- rdoc-file=lib/ipaddr.rb -->
|
1528
|
+
# IPv6 protocol family
|
1524
1529
|
#
|
1525
1530
|
Socket::AF_INET6: Integer
|
1526
1531
|
|
@@ -3346,6 +3351,16 @@ Socket::SO_ERROR: Integer
|
|
3346
3351
|
#
|
3347
3352
|
Socket::SO_GET_FILTER: Integer
|
3348
3353
|
|
3354
|
+
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3355
|
+
# Receive the cpu attached to the socket (Linux 3.19)
|
3356
|
+
#
|
3357
|
+
Socket::SO_INCOMING_CPU: Integer
|
3358
|
+
|
3359
|
+
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3360
|
+
# Receive the napi ID attached to a RX queue (Linux 4.12)
|
3361
|
+
#
|
3362
|
+
Socket::SO_INCOMING_NAPI_ID: Integer
|
3363
|
+
|
3349
3364
|
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3350
3365
|
# Keep connections alive
|
3351
3366
|
#
|
@@ -3481,6 +3496,11 @@ Socket::SO_REUSEADDR: Integer
|
|
3481
3496
|
#
|
3482
3497
|
Socket::SO_REUSEPORT: Integer
|
3483
3498
|
|
3499
|
+
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3500
|
+
# Set the routing table for this socket (OpenBSD)
|
3501
|
+
#
|
3502
|
+
Socket::SO_RTABLE: Integer
|
3503
|
+
|
3484
3504
|
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3485
3505
|
# Toggle cmsg for number of packets dropped (Linux 2.6.33)
|
3486
3506
|
#
|
@@ -3494,6 +3514,11 @@ Socket::SO_SECURITY_ENCRYPTION_TRANSPORT: Integer
|
|
3494
3514
|
#
|
3495
3515
|
Socket::SO_SELECT_ERR_QUEUE: Integer
|
3496
3516
|
|
3517
|
+
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3518
|
+
# Set the associated routing table for the socket (FreeBSD)
|
3519
|
+
#
|
3520
|
+
Socket::SO_SETFIB: Integer
|
3521
|
+
|
3497
3522
|
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3498
3523
|
# Send buffer size
|
3499
3524
|
#
|
@@ -3539,6 +3564,11 @@ Socket::SO_TYPE: Integer
|
|
3539
3564
|
#
|
3540
3565
|
Socket::SO_USELOOPBACK: Integer
|
3541
3566
|
|
3567
|
+
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3568
|
+
# Setting an identifier for ipfw purpose mainly
|
3569
|
+
#
|
3570
|
+
Socket::SO_USER_COOKIE: Integer
|
3571
|
+
|
3542
3572
|
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3543
3573
|
# Give a hint when more data is ready
|
3544
3574
|
#
|
@@ -3554,6 +3584,11 @@ Socket::SO_WANTOOBFLAG: Integer
|
|
3554
3584
|
#
|
3555
3585
|
Socket::SO_WIFI_STATUS: Integer
|
3556
3586
|
|
3587
|
+
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3588
|
+
# Retrieve information about this socket (macOS)
|
3589
|
+
#
|
3590
|
+
Socket::TCP_CONNECTION_INFO: Integer
|
3591
|
+
|
3557
3592
|
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3558
3593
|
# TCP congestion control algorithm (Linux 2.6.13, glibc 2.6)
|
3559
3594
|
#
|
@@ -3584,6 +3619,11 @@ Socket::TCP_FASTOPEN: Integer
|
|
3584
3619
|
#
|
3585
3620
|
Socket::TCP_INFO: Integer
|
3586
3621
|
|
3622
|
+
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3623
|
+
# Idle time before keepalive probes are sent (macOS)
|
3624
|
+
#
|
3625
|
+
Socket::TCP_KEEPALIVE: Integer
|
3626
|
+
|
3587
3627
|
# <!-- rdoc-file=ext/socket/constdefs.c -->
|
3588
3628
|
# Maximum number of keepalive probes allowed before dropping a connection (Linux
|
3589
3629
|
# 2.4, glibc 2.2)
|
@@ -3696,8 +3736,6 @@ Socket::UDP_CORK: Integer
|
|
3696
3736
|
# Socket::Ifaddr represents a result of getifaddrs() function.
|
3697
3737
|
#
|
3698
3738
|
class Socket::Ifaddr
|
3699
|
-
public
|
3700
|
-
|
3701
3739
|
# <!--
|
3702
3740
|
# rdoc-file=ext/socket/ifaddr.c
|
3703
3741
|
# - ifaddr.addr => addrinfo
|
@@ -3771,8 +3809,6 @@ end
|
|
3771
3809
|
# UDP/IP address information used by Socket.udp_server_loop.
|
3772
3810
|
#
|
3773
3811
|
class Socket::UDPSource
|
3774
|
-
public
|
3775
|
-
|
3776
3812
|
def inspect: () -> String
|
3777
3813
|
|
3778
3814
|
# <!-- rdoc-file=ext/socket/lib/socket.rb -->
|
@@ -3877,8 +3913,6 @@ class Socket::AncillaryData
|
|
3877
3913
|
#
|
3878
3914
|
def self.unix_rights: (IO fd) -> instance
|
3879
3915
|
|
3880
|
-
public
|
3881
|
-
|
3882
3916
|
# <!--
|
3883
3917
|
# rdoc-file=ext/socket/ancdata.c
|
3884
3918
|
# - ancillarydata.cmsg_is?(level, type) => true or false
|
@@ -4096,7 +4130,6 @@ class Socket::AncillaryData
|
|
4096
4130
|
# * Socket::AF_UNIX, "AF_UNIX", "UNIX", :AF_UNIX, :UNIX
|
4097
4131
|
# * etc.
|
4098
4132
|
#
|
4099
|
-
#
|
4100
4133
|
# *cmsg_level* should be an integer, a string or a symbol.
|
4101
4134
|
# * Socket::SOL_SOCKET, "SOL_SOCKET", "SOCKET", :SOL_SOCKET and :SOCKET
|
4102
4135
|
# * Socket::IPPROTO_IP, "IP" and :IP
|
@@ -4104,7 +4137,6 @@ class Socket::AncillaryData
|
|
4104
4137
|
# * Socket::IPPROTO_TCP, "TCP" and :TCP
|
4105
4138
|
# * etc.
|
4106
4139
|
#
|
4107
|
-
#
|
4108
4140
|
# *cmsg_type* should be an integer, a string or a symbol. If a string/symbol is
|
4109
4141
|
# specified, it is interpreted depend on *cmsg_level*.
|
4110
4142
|
# * Socket::SCM_RIGHTS, "SCM_RIGHTS", "RIGHTS", :SCM_RIGHTS, :RIGHTS for
|
@@ -4113,7 +4145,6 @@ class Socket::AncillaryData
|
|
4113
4145
|
# * Socket::IPV6_PKTINFO, "PKTINFO" and :PKTINFO for IPPROTO_IPV6
|
4114
4146
|
# * etc.
|
4115
4147
|
#
|
4116
|
-
#
|
4117
4148
|
# *cmsg_data* should be a string.
|
4118
4149
|
#
|
4119
4150
|
# p Socket::AncillaryData.new(:INET, :TCP, :NODELAY, "")
|
@@ -4122,5 +4153,5 @@ class Socket::AncillaryData
|
|
4122
4153
|
# p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "")
|
4123
4154
|
# #=> #<Socket::AncillaryData: INET6 IPV6 PKTINFO "">
|
4124
4155
|
#
|
4125
|
-
def initialize: (
|
4156
|
+
def initialize: (interned | Integer family, interned | Integer cmsg_level, interned | Integer cmsg_data, String cmsg_data) -> untyped
|
4126
4157
|
end
|
@@ -27,8 +27,6 @@
|
|
27
27
|
# end
|
28
28
|
#
|
29
29
|
class TCPServer < TCPSocket
|
30
|
-
public
|
31
|
-
|
32
30
|
# <!--
|
33
31
|
# rdoc-file=ext/socket/tcpserver.c
|
34
32
|
# - tcpserver.accept => tcpsocket
|
@@ -93,7 +91,6 @@ class TCPServer < TCPSocket
|
|
93
91
|
# ### Parameter
|
94
92
|
# * `backlog` - the maximum length of the queue for pending connections.
|
95
93
|
#
|
96
|
-
#
|
97
94
|
# ### Example 1
|
98
95
|
# require 'socket'
|
99
96
|
# include Socket::Constants
|
@@ -130,7 +127,6 @@ class TCPServer < TCPSocket
|
|
130
127
|
# * Errno::ENOBUFS - insufficient resources are available in the system to
|
131
128
|
# complete the call
|
132
129
|
#
|
133
|
-
#
|
134
130
|
# ### Windows Exceptions
|
135
131
|
# On Windows systems the following system exceptions may be raised if the call
|
136
132
|
# to *listen* fails:
|
@@ -150,7 +146,6 @@ class TCPServer < TCPSocket
|
|
150
146
|
# * Errno::EOPNOTSUPP - the referenced `socket` is not a type that supports
|
151
147
|
# the *listen* method
|
152
148
|
#
|
153
|
-
#
|
154
149
|
# ### See
|
155
150
|
# * listen manual pages on unix-based systems
|
156
151
|
# * listen function in Microsoft's Winsock functions reference
|