rbs 3.3.2 → 3.4.0.pre.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/comments.yml +2 -5
- data/.github/workflows/ruby.yml +7 -8
- data/.github/workflows/typecheck.yml +37 -0
- data/CHANGELOG.md +50 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +11 -11
- data/Steepfile +2 -2
- data/core/array.rbs +19 -49
- data/core/basic_object.rbs +2 -2
- data/core/comparable.rbs +17 -8
- data/core/complex.rbs +82 -43
- data/core/data.rbs +2 -4
- data/core/dir.rbs +635 -295
- data/core/enumerable.rbs +11 -18
- data/core/enumerator.rbs +37 -31
- data/core/errors.rbs +4 -0
- data/core/false_class.rbs +34 -15
- data/core/fiber.rbs +23 -0
- data/core/file.rbs +329 -120
- data/core/float.rbs +17 -32
- data/core/gc.rbs +17 -11
- data/core/hash.rbs +22 -44
- data/core/integer.rbs +82 -113
- data/core/io/buffer.rbs +90 -47
- data/core/io.rbs +39 -116
- data/core/kernel.rbs +442 -489
- data/core/match_data.rbs +55 -56
- data/core/module.rbs +45 -1
- data/core/nil_class.rbs +98 -35
- data/core/numeric.rbs +22 -32
- data/core/object_space/weak_key_map.rbs +102 -0
- data/core/process.rbs +1242 -655
- data/core/ractor.rbs +139 -120
- data/core/range.rbs +100 -4
- data/core/rational.rbs +0 -4
- data/core/rbs/unnamed/argf.rbs +16 -8
- data/core/rbs/unnamed/env_class.rbs +0 -24
- data/core/refinement.rbs +8 -0
- data/core/regexp.rbs +1149 -598
- data/core/ruby_vm.rbs +126 -12
- data/core/rubygems/platform.rbs +9 -0
- data/core/rubygems/rubygems.rbs +1 -1
- data/core/rubygems/version.rbs +5 -1
- data/core/set.rbs +20 -22
- data/core/signal.rbs +4 -4
- data/core/string.rbs +283 -230
- data/core/string_io.rbs +2 -14
- data/core/struct.rbs +404 -24
- data/core/symbol.rbs +1 -19
- data/core/thread.rbs +29 -12
- data/core/time.rbs +227 -104
- data/core/trace_point.rbs +2 -5
- data/core/true_class.rbs +54 -21
- data/core/warning.rbs +14 -11
- data/docs/data_and_struct.md +29 -0
- data/docs/syntax.md +3 -5
- data/docs/tools.md +1 -0
- data/ext/rbs_extension/lexer.c +643 -559
- data/ext/rbs_extension/lexer.re +5 -1
- data/ext/rbs_extension/parser.c +12 -3
- data/ext/rbs_extension/unescape.c +7 -47
- data/lib/rbs/cli/diff.rb +4 -1
- data/lib/rbs/cli/validate.rb +280 -0
- data/lib/rbs/cli.rb +2 -194
- data/lib/rbs/collection/config.rb +5 -6
- data/lib/rbs/collection/sources/git.rb +1 -1
- data/lib/rbs/collection.rb +1 -0
- data/lib/rbs/diff.rb +7 -4
- data/lib/rbs/errors.rb +11 -0
- data/lib/rbs/test/errors.rb +4 -1
- data/lib/rbs/test/guaranteed.rb +2 -3
- data/lib/rbs/test/type_check.rb +15 -10
- data/lib/rbs/test.rb +3 -3
- data/lib/rbs/types.rb +29 -0
- 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/version.rb +1 -1
- data/sig/cli/validate.rbs +43 -0
- data/sig/diff.rbs +3 -1
- data/sig/errors.rbs +8 -0
- data/sig/rbs.rbs +1 -1
- 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/types.rbs +6 -1
- 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/stdlib/base64/0/base64.rbs +307 -45
- data/stdlib/bigdecimal/0/big_decimal.rbs +35 -15
- data/stdlib/coverage/0/coverage.rbs +2 -2
- data/stdlib/csv/0/csv.rbs +25 -55
- data/stdlib/date/0/date.rbs +1 -43
- data/stdlib/date/0/date_time.rbs +1 -13
- data/stdlib/delegate/0/delegator.rbs +186 -0
- data/stdlib/delegate/0/kernel.rbs +47 -0
- data/stdlib/delegate/0/simple_delegator.rbs +98 -0
- data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -1
- data/stdlib/erb/0/erb.rbs +2 -2
- data/stdlib/fileutils/0/fileutils.rbs +0 -19
- data/stdlib/io-console/0/io-console.rbs +12 -1
- data/stdlib/ipaddr/0/ipaddr.rbs +2 -1
- data/stdlib/json/0/json.rbs +320 -81
- data/stdlib/logger/0/logger.rbs +9 -5
- data/stdlib/monitor/0/monitor.rbs +78 -0
- data/stdlib/net-http/0/net-http.rbs +1880 -543
- data/stdlib/objspace/0/objspace.rbs +19 -13
- data/stdlib/openssl/0/openssl.rbs +508 -127
- data/stdlib/optparse/0/optparse.rbs +25 -11
- data/stdlib/pathname/0/pathname.rbs +1 -1
- data/stdlib/pp/0/pp.rbs +2 -5
- data/stdlib/prettyprint/0/prettyprint.rbs +2 -2
- data/stdlib/pstore/0/pstore.rbs +2 -4
- data/stdlib/rdoc/0/comment.rbs +1 -2
- data/stdlib/resolv/0/resolv.rbs +4 -2
- data/stdlib/socket/0/socket.rbs +2 -2
- data/stdlib/socket/0/unix_socket.rbs +2 -2
- data/stdlib/strscan/0/string_scanner.rbs +3 -2
- data/stdlib/tempfile/0/tempfile.rbs +1 -1
- data/stdlib/uri/0/common.rbs +245 -123
- metadata +23 -4
- data/lib/rbs/test/spy.rb +0 -6
data/core/io.rbs
CHANGED
@@ -110,7 +110,7 @@
|
|
110
110
|
#
|
111
111
|
#
|
112
112
|
# Also available are the options offered in String#encode, which may control
|
113
|
-
# conversion between external internal encoding.
|
113
|
+
# conversion between external and internal encoding.
|
114
114
|
#
|
115
115
|
# ## Basic IO
|
116
116
|
#
|
@@ -398,7 +398,7 @@
|
|
398
398
|
# # => 41
|
399
399
|
# f.close
|
400
400
|
#
|
401
|
-
# * When a stream is read,
|
401
|
+
# * When a stream is read, `$.` is set to the line number for that stream:
|
402
402
|
#
|
403
403
|
# f0 = File.new('t.txt')
|
404
404
|
# f1 = File.new('t.dat')
|
@@ -684,14 +684,14 @@ class IO < Object
|
|
684
684
|
# -->
|
685
685
|
# Sets auto-close flag.
|
686
686
|
#
|
687
|
-
# f = open(
|
688
|
-
# IO.for_fd(f.fileno)
|
689
|
-
# #
|
690
|
-
# f.gets # may cause Errno::EBADF
|
687
|
+
# f = File.open(File::NULL)
|
688
|
+
# IO.for_fd(f.fileno).close
|
689
|
+
# f.gets # raises Errno::EBADF
|
691
690
|
#
|
692
|
-
# f = open(
|
693
|
-
# IO.for_fd(f.fileno)
|
694
|
-
#
|
691
|
+
# f = File.open(File::NULL)
|
692
|
+
# g = IO.for_fd(f.fileno)
|
693
|
+
# g.autoclose = false
|
694
|
+
# g.close
|
695
695
|
# f.gets # won't cause Errno::EBADF
|
696
696
|
#
|
697
697
|
def autoclose=: (boolish bool) -> boolish
|
@@ -700,8 +700,8 @@ class IO < Object
|
|
700
700
|
# rdoc-file=io.c
|
701
701
|
# - ios.autoclose? -> true or false
|
702
702
|
# -->
|
703
|
-
# Returns `true` if the underlying file descriptor of *ios* will be closed
|
704
|
-
#
|
703
|
+
# Returns `true` if the underlying file descriptor of *ios* will be closed at
|
704
|
+
# its finalization or at calling #close, otherwise `false`.
|
705
705
|
#
|
706
706
|
def autoclose?: () -> bool
|
707
707
|
|
@@ -764,7 +764,7 @@ class IO < Object
|
|
764
764
|
# -->
|
765
765
|
# Sets a close-on-exec flag.
|
766
766
|
#
|
767
|
-
# f = open(
|
767
|
+
# f = File.open(File::NULL)
|
768
768
|
# f.close_on_exec = true
|
769
769
|
# system("cat", "/proc/self/fd/#{f.fileno}") # cat: /proc/self/fd/3: No such file or directory
|
770
770
|
# f.closed? #=> false
|
@@ -976,8 +976,6 @@ class IO < Object
|
|
976
976
|
# not behave as you intend with IO#eof?, unless you call IO#rewind first (which
|
977
977
|
# is not available for some streams).
|
978
978
|
#
|
979
|
-
# IO#eof? is an alias for IO#eof.
|
980
|
-
#
|
981
979
|
def eof: () -> bool
|
982
980
|
|
983
981
|
# <!--
|
@@ -988,7 +986,7 @@ class IO < Object
|
|
988
986
|
# provides a mechanism for issuing low-level commands to control or query a
|
989
987
|
# file-oriented I/O stream. Arguments and results are platform dependent.
|
990
988
|
#
|
991
|
-
# If
|
989
|
+
# If `argument` is a number, its value is passed directly; if it is a string, it
|
992
990
|
# is interpreted as a binary sequence of bytes. (Array#pack might be a useful
|
993
991
|
# way to build this string.)
|
994
992
|
#
|
@@ -1018,8 +1016,6 @@ class IO < Object
|
|
1018
1016
|
# File.open('t.txt').fileno # => 10
|
1019
1017
|
# f.close
|
1020
1018
|
#
|
1021
|
-
# IO#to_i is an alias for IO#fileno.
|
1022
|
-
#
|
1023
1019
|
def fileno: () -> Integer
|
1024
1020
|
|
1025
1021
|
# <!--
|
@@ -1160,7 +1156,8 @@ class IO < Object
|
|
1160
1156
|
# f.gets(chomp: true) # => nil
|
1161
1157
|
# f.close
|
1162
1158
|
#
|
1163
|
-
def gets: (?
|
1159
|
+
def gets: (string? sep, ?int limit, ?chomp: boolish) -> String?
|
1160
|
+
| (?int limit, ?chomp: boolish) -> String?
|
1164
1161
|
|
1165
1162
|
# <!--
|
1166
1163
|
# rdoc-file=io.c
|
@@ -1256,8 +1253,6 @@ class IO < Object
|
|
1256
1253
|
# f = File.new('/dev/tty').isatty #=> true
|
1257
1254
|
# f.close
|
1258
1255
|
#
|
1259
|
-
# IO#tty? is an alias for IO#isatty.
|
1260
|
-
#
|
1261
1256
|
def isatty: () -> bool
|
1262
1257
|
|
1263
1258
|
# <!--
|
@@ -1632,7 +1627,7 @@ class IO < Object
|
|
1632
1627
|
def readchar: () -> String
|
1633
1628
|
|
1634
1629
|
# <!--
|
1635
|
-
# rdoc-file=io.
|
1630
|
+
# rdoc-file=io.rb
|
1636
1631
|
# - readline(sep = $/, chomp: false) -> string
|
1637
1632
|
# - readline(limit, chomp: false) -> string
|
1638
1633
|
# - readline(sep, limit, chomp: false) -> string
|
@@ -1915,16 +1910,19 @@ class IO < Object
|
|
1915
1910
|
# -->
|
1916
1911
|
# See [Encodings](rdoc-ref:File@Encodings).
|
1917
1912
|
#
|
1918
|
-
# Argument `ext_enc`, if given, must be an Encoding object
|
1919
|
-
# the encoding for the stream.
|
1913
|
+
# Argument `ext_enc`, if given, must be an Encoding object or a String with the
|
1914
|
+
# encoding name; it is assigned as the encoding for the stream.
|
1920
1915
|
#
|
1921
|
-
# Argument `int_enc`, if given, must be an Encoding object
|
1922
|
-
# the encoding for the internal string.
|
1916
|
+
# Argument `int_enc`, if given, must be an Encoding object or a String with the
|
1917
|
+
# encoding name; it is assigned as the encoding for the internal string.
|
1923
1918
|
#
|
1924
1919
|
# Argument `'ext_enc:int_enc'`, if given, is a string containing two
|
1925
1920
|
# colon-separated encoding names; corresponding Encoding objects are assigned as
|
1926
1921
|
# the external and internal encodings for the stream.
|
1927
1922
|
#
|
1923
|
+
# If the external encoding of a string is binary/ASCII-8BIT, the internal
|
1924
|
+
# encoding of the string is set to nil, since no transcoding is needed.
|
1925
|
+
#
|
1928
1926
|
# Optional keyword arguments `enc_opts` specify [Encoding
|
1929
1927
|
# options](rdoc-ref:encodings.rdoc@Encoding+Options).
|
1930
1928
|
#
|
@@ -2066,8 +2064,6 @@ class IO < Object
|
|
2066
2064
|
#
|
2067
2065
|
# Related: IO#pos=, IO#seek.
|
2068
2066
|
#
|
2069
|
-
# IO#pos is an alias for IO#tell.
|
2070
|
-
#
|
2071
2067
|
def tell: () -> Integer
|
2072
2068
|
|
2073
2069
|
# <!-- rdoc-file=io.c -->
|
@@ -2082,8 +2078,6 @@ class IO < Object
|
|
2082
2078
|
#
|
2083
2079
|
# Related: IO#pos=, IO#seek.
|
2084
2080
|
#
|
2085
|
-
# IO#pos is an alias for IO#tell.
|
2086
|
-
#
|
2087
2081
|
alias pos tell
|
2088
2082
|
|
2089
2083
|
# <!--
|
@@ -2099,8 +2093,11 @@ class IO < Object
|
|
2099
2093
|
# - timeout = duration -> duration
|
2100
2094
|
# - timeout = nil -> nil
|
2101
2095
|
# -->
|
2102
|
-
#
|
2103
|
-
# to all blocking operations where possible.
|
2096
|
+
# Sets the internal timeout to the specified duration or nil. The timeout
|
2097
|
+
# applies to all blocking operations where possible.
|
2098
|
+
#
|
2099
|
+
# When the operation performs longer than the timeout set, IO::TimeoutError is
|
2100
|
+
# raised.
|
2104
2101
|
#
|
2105
2102
|
# This affects the following methods (but is not limited to): #gets, #puts,
|
2106
2103
|
# #read, #write, #wait_readable and #wait_writable. This also affects blocking
|
@@ -2131,8 +2128,6 @@ class IO < Object
|
|
2131
2128
|
# f = File.new('/dev/tty').isatty #=> true
|
2132
2129
|
# f.close
|
2133
2130
|
#
|
2134
|
-
# IO#tty? is an alias for IO#isatty.
|
2135
|
-
#
|
2136
2131
|
alias tty? isatty
|
2137
2132
|
|
2138
2133
|
# <!--
|
@@ -2298,7 +2293,6 @@ class IO < Object
|
|
2298
2293
|
|
2299
2294
|
# <!--
|
2300
2295
|
# rdoc-file=io.c
|
2301
|
-
# - IO.binread(command, length = nil, offset = 0) -> string or nil
|
2302
2296
|
# - IO.binread(path, length = nil, offset = 0) -> string or nil
|
2303
2297
|
# -->
|
2304
2298
|
# Behaves like IO.read, except that the stream is opened in binary mode with
|
@@ -2312,7 +2306,6 @@ class IO < Object
|
|
2312
2306
|
|
2313
2307
|
# <!--
|
2314
2308
|
# rdoc-file=io.c
|
2315
|
-
# - IO.binwrite(command, string, offset = 0) -> integer
|
2316
2309
|
# - IO.binwrite(path, string, offset = 0) -> integer
|
2317
2310
|
# -->
|
2318
2311
|
# Behaves like IO.write, except that the stream is opened in binary mode with
|
@@ -2550,9 +2543,6 @@ class IO < Object
|
|
2550
2543
|
# - IO.foreach(path, sep = $/, **opts) {|line| block } -> nil
|
2551
2544
|
# - IO.foreach(path, limit, **opts) {|line| block } -> nil
|
2552
2545
|
# - IO.foreach(path, sep, limit, **opts) {|line| block } -> nil
|
2553
|
-
# - IO.foreach(command, sep = $/, **opts) {|line| block } -> nil
|
2554
|
-
# - IO.foreach(command, limit, **opts) {|line| block } -> nil
|
2555
|
-
# - IO.foreach(command, sep, limit, **opts) {|line| block } -> nil
|
2556
2546
|
# - IO.foreach(...) -> an_enumerator
|
2557
2547
|
# -->
|
2558
2548
|
# Calls the block with each successive line read from the stream.
|
@@ -2561,17 +2551,7 @@ class IO < Object
|
|
2561
2551
|
# potential security vulnerabilities if called with untrusted input; see
|
2562
2552
|
# [Command Injection](rdoc-ref:command_injection.rdoc).
|
2563
2553
|
#
|
2564
|
-
# The first argument must be a string that is
|
2565
|
-
#
|
2566
|
-
# * Path: if `self` is a subclass of IO (File, for example), or if the string
|
2567
|
-
# *does* *not* start with the pipe character (`'|'`), the string is the path
|
2568
|
-
# to a file.
|
2569
|
-
# * Command: if `self` is the class IO, and if the string starts with the pipe
|
2570
|
-
# character, the rest of the string is a command to be executed as a
|
2571
|
-
# subprocess. This usage has potential security vulnerabilities if called
|
2572
|
-
# with untrusted input; see [Command
|
2573
|
-
# Injection](rdoc-ref:command_injection.rdoc).
|
2574
|
-
#
|
2554
|
+
# The first argument must be a string that is the path to a file.
|
2575
2555
|
#
|
2576
2556
|
# With only argument `path` given, parses lines from the file at the given
|
2577
2557
|
# `path`, as determined by the default line separator, and calls the block with
|
@@ -2631,7 +2611,7 @@ class IO < Object
|
|
2631
2611
|
#
|
2632
2612
|
# * [Open Options](rdoc-ref:IO@Open+Options).
|
2633
2613
|
# * [Encoding options](rdoc-ref:encodings.rdoc@Encoding+Options).
|
2634
|
-
# * [Line Options](rdoc-ref:IO@Line+
|
2614
|
+
# * [Line Options](rdoc-ref:IO@Line+IO).
|
2635
2615
|
#
|
2636
2616
|
#
|
2637
2617
|
# Returns an Enumerator if no block is given.
|
@@ -2644,9 +2624,9 @@ class IO < Object
|
|
2644
2624
|
# - IO.pipe(**opts) -> [read_io, write_io]
|
2645
2625
|
# - IO.pipe(enc, **opts) -> [read_io, write_io]
|
2646
2626
|
# - IO.pipe(ext_enc, int_enc, **opts) -> [read_io, write_io]
|
2647
|
-
# - IO.pipe(**opts) {|read_io, write_io
|
2648
|
-
# - IO.pipe(enc, **opts) {|read_io, write_io
|
2649
|
-
# - IO.pipe(ext_enc, int_enc, **opts) {|read_io, write_io
|
2627
|
+
# - IO.pipe(**opts) {|read_io, write_io| ...} -> object
|
2628
|
+
# - IO.pipe(enc, **opts) {|read_io, write_io| ...} -> object
|
2629
|
+
# - IO.pipe(ext_enc, int_enc, **opts) {|read_io, write_io| ...} -> object
|
2650
2630
|
# -->
|
2651
2631
|
# Creates a pair of pipe endpoints, `read_io` and `write_io`, connected to each
|
2652
2632
|
# other.
|
@@ -2722,7 +2702,6 @@ class IO < Object
|
|
2722
2702
|
|
2723
2703
|
# <!--
|
2724
2704
|
# rdoc-file=io.c
|
2725
|
-
# - IO.read(command, length = nil, offset = 0, **opts) -> string or nil
|
2726
2705
|
# - IO.read(path, length = nil, offset = 0, **opts) -> string or nil
|
2727
2706
|
# -->
|
2728
2707
|
# Opens the stream, reads and returns some or all of its content, and closes the
|
@@ -2732,19 +2711,7 @@ class IO < Object
|
|
2732
2711
|
# potential security vulnerabilities if called with untrusted input; see
|
2733
2712
|
# [Command Injection](rdoc-ref:command_injection.rdoc).
|
2734
2713
|
#
|
2735
|
-
# The first argument must be a string
|
2736
|
-
# with the pipe character (`'|'`):
|
2737
|
-
#
|
2738
|
-
# * If so (and if `self` is IO), the rest of the string is a command to be
|
2739
|
-
# executed as a subprocess.
|
2740
|
-
# * Otherwise, the string is the path to a file.
|
2741
|
-
#
|
2742
|
-
#
|
2743
|
-
# With only argument `command` given, executes the command in a shell, returns
|
2744
|
-
# its entire $stdout:
|
2745
|
-
#
|
2746
|
-
# IO.read('| cat t.txt')
|
2747
|
-
# # => "First line\nSecond line\n\nThird line\nFourth line\n"
|
2714
|
+
# The first argument must be a string that is the path to a file.
|
2748
2715
|
#
|
2749
2716
|
# With only argument `path` given, reads in text mode and returns the entire
|
2750
2717
|
# content of the file at the given path:
|
@@ -2756,8 +2723,6 @@ class IO < Object
|
|
2756
2723
|
# when encountering certain special bytes. Consider using IO.binread if all
|
2757
2724
|
# bytes in the file should be read.
|
2758
2725
|
#
|
2759
|
-
# For both forms, command and path, the remaining arguments are the same.
|
2760
|
-
#
|
2761
2726
|
# With argument `length`, returns `length` bytes if available:
|
2762
2727
|
#
|
2763
2728
|
# IO.read('t.txt', 7) # => "First l"
|
@@ -2779,9 +2744,6 @@ class IO < Object
|
|
2779
2744
|
|
2780
2745
|
# <!--
|
2781
2746
|
# rdoc-file=io.c
|
2782
|
-
# - IO.readlines(command, sep = $/, **opts) -> array
|
2783
|
-
# - IO.readlines(command, limit, **opts) -> array
|
2784
|
-
# - IO.readlines(command, sep, limit, **opts) -> array
|
2785
2747
|
# - IO.readlines(path, sep = $/, **opts) -> array
|
2786
2748
|
# - IO.readlines(path, limit, **opts) -> array
|
2787
2749
|
# - IO.readlines(path, sep, limit, **opts) -> array
|
@@ -2792,20 +2754,7 @@ class IO < Object
|
|
2792
2754
|
# potential security vulnerabilities if called with untrusted input; see
|
2793
2755
|
# [Command Injection](rdoc-ref:command_injection.rdoc).
|
2794
2756
|
#
|
2795
|
-
# The first argument must be a string
|
2796
|
-
# with the pipe character (`'|'`):
|
2797
|
-
#
|
2798
|
-
# * If so (and if `self` is IO), the rest of the string is a command to be
|
2799
|
-
# executed as a subprocess.
|
2800
|
-
# * Otherwise, the string is the path to a file.
|
2801
|
-
#
|
2802
|
-
#
|
2803
|
-
# With only argument `command` given, executes the command in a shell, parses
|
2804
|
-
# its $stdout into lines, as determined by the default line separator, and
|
2805
|
-
# returns those lines in an array:
|
2806
|
-
#
|
2807
|
-
# IO.readlines('| cat t.txt')
|
2808
|
-
# # => ["First line\n", "Second line\n", "\n", "Third line\n", "Fourth line\n"]
|
2757
|
+
# The first argument must be a string that is the path to a file.
|
2809
2758
|
#
|
2810
2759
|
# With only argument `path` given, parses lines from the file at the given
|
2811
2760
|
# `path`, as determined by the default line separator, and returns those lines
|
@@ -2814,8 +2763,6 @@ class IO < Object
|
|
2814
2763
|
# IO.readlines('t.txt')
|
2815
2764
|
# # => ["First line\n", "Second line\n", "\n", "Third line\n", "Fourth line\n"]
|
2816
2765
|
#
|
2817
|
-
# For both forms, command and path, the remaining arguments are the same.
|
2818
|
-
#
|
2819
2766
|
# With argument `sep` given, parses lines as determined by that line separator
|
2820
2767
|
# (see [Line Separator](rdoc-ref:IO@Line+Separator)):
|
2821
2768
|
#
|
@@ -2844,7 +2791,7 @@ class IO < Object
|
|
2844
2791
|
#
|
2845
2792
|
# * [Open Options](rdoc-ref:IO@Open+Options).
|
2846
2793
|
# * [Encoding options](rdoc-ref:encodings.rdoc@Encoding+Options).
|
2847
|
-
# * [Line Options](rdoc-ref:IO@Line+
|
2794
|
+
# * [Line Options](rdoc-ref:IO@Line+IO).
|
2848
2795
|
#
|
2849
2796
|
def self.readlines: (String | _ToPath name, ?String sep, ?Integer limit, ?external_encoding: String | Encoding | nil, ?internal_encoding: String | Encoding | nil, ?encoding: String | Encoding | nil, ?textmode: boolish, ?binmode: boolish, ?autoclose: boolish, ?mode: String, ?chomp: boolish) -> ::Array[String]
|
2850
2797
|
|
@@ -3022,7 +2969,6 @@ class IO < Object
|
|
3022
2969
|
|
3023
2970
|
# <!--
|
3024
2971
|
# rdoc-file=io.c
|
3025
|
-
# - IO.write(command, data, **opts) -> integer
|
3026
2972
|
# - IO.write(path, data, offset = 0, **opts) -> integer
|
3027
2973
|
# -->
|
3028
2974
|
# Opens the stream, writes the given `data` to it, and closes the stream;
|
@@ -3032,25 +2978,10 @@ class IO < Object
|
|
3032
2978
|
# potential security vulnerabilities if called with untrusted input; see
|
3033
2979
|
# [Command Injection](rdoc-ref:command_injection.rdoc).
|
3034
2980
|
#
|
3035
|
-
# The first argument must be a string
|
3036
|
-
# with the pipe character (`'|'`):
|
3037
|
-
#
|
3038
|
-
# * If so (and if `self` is IO), the rest of the string is a command to be
|
3039
|
-
# executed as a subprocess.
|
3040
|
-
# * Otherwise, the string is the path to a file.
|
3041
|
-
#
|
2981
|
+
# The first argument must be a string that is the path to a file.
|
3042
2982
|
#
|
3043
|
-
# With argument `
|
3044
|
-
#
|
3045
|
-
# of the given `data`:
|
3046
|
-
#
|
3047
|
-
# IO.write('| cat', 'Hello World!') # => 12
|
3048
|
-
#
|
3049
|
-
# Output:
|
3050
|
-
#
|
3051
|
-
# Hello World!
|
3052
|
-
#
|
3053
|
-
# With argument `path` given, writes the given `data` to the file at that path:
|
2983
|
+
# With only argument `path` given, writes the given `data` to the file at that
|
2984
|
+
# path:
|
3054
2985
|
#
|
3055
2986
|
# IO.write('t.tmp', 'abc') # => 3
|
3056
2987
|
# File.read('t.tmp') # => "abc"
|
@@ -3200,8 +3131,6 @@ class IO < Object
|
|
3200
3131
|
#
|
3201
3132
|
# Returns an Enumerator if no block is given.
|
3202
3133
|
#
|
3203
|
-
# IO#each is an alias for IO#each_line.
|
3204
|
-
#
|
3205
3134
|
def each_line: (?String sep, ?Integer limit) { (String line) -> void } -> self
|
3206
3135
|
| (?String sep, ?Integer limit) -> ::Enumerator[String, self]
|
3207
3136
|
|
@@ -3307,8 +3236,6 @@ class IO < Object
|
|
3307
3236
|
#
|
3308
3237
|
# Returns an Enumerator if no block is given.
|
3309
3238
|
#
|
3310
|
-
# IO#each is an alias for IO#each_line.
|
3311
|
-
#
|
3312
3239
|
alias each each_line
|
3313
3240
|
|
3314
3241
|
# <!-- rdoc-file=io.c -->
|
@@ -3342,8 +3269,6 @@ class IO < Object
|
|
3342
3269
|
# not behave as you intend with IO#eof?, unless you call IO#rewind first (which
|
3343
3270
|
# is not available for some streams).
|
3344
3271
|
#
|
3345
|
-
# IO#eof? is an alias for IO#eof.
|
3346
|
-
#
|
3347
3272
|
alias eof? eof
|
3348
3273
|
|
3349
3274
|
# <!-- rdoc-file=io.c -->
|
@@ -3355,8 +3280,6 @@ class IO < Object
|
|
3355
3280
|
# File.open('t.txt').fileno # => 10
|
3356
3281
|
# f.close
|
3357
3282
|
#
|
3358
|
-
# IO#to_i is an alias for IO#fileno.
|
3359
|
-
#
|
3360
3283
|
alias to_i fileno
|
3361
3284
|
end
|
3362
3285
|
|