rbs 3.1.3 → 3.2.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/ruby.yml +0 -6
- data/CHANGELOG.md +68 -0
- data/Gemfile +0 -6
- data/Gemfile.lock +12 -21
- data/README.md +1 -1
- data/Rakefile +44 -0
- data/Steepfile +3 -3
- data/core/array.rbs +0 -8
- data/core/builtin.rbs +28 -8
- data/core/constants.rbs +13 -5
- data/core/exception.rbs +1 -1
- data/core/global_variables.rbs +27 -27
- data/core/io.rbs +163 -172
- data/core/kernel.rbs +7 -4
- data/core/module.rbs +34 -32
- data/core/object.rbs +2 -2
- data/core/string_io.rbs +9 -0
- data/core/thread.rbs +25 -1
- data/core/time.rbs +3 -3
- data/docs/CONTRIBUTING.md +1 -1
- data/docs/rbs_by_example.md +16 -35
- data/docs/repo.md +1 -1
- data/docs/sigs.md +7 -7
- data/docs/stdlib.md +2 -3
- data/docs/syntax.md +40 -40
- data/lib/rbs/cli.rb +15 -4
- data/lib/rbs/collection/installer.rb +5 -2
- data/lib/rbs/collection/sources/stdlib.rb +5 -1
- data/lib/rbs/errors.rb +8 -1
- data/lib/rbs/file_finder.rb +1 -1
- data/lib/rbs/prototype/rb.rb +64 -6
- data/lib/rbs/prototype/rbi.rb +2 -6
- data/lib/rbs/prototype/runtime.rb +29 -8
- data/lib/rbs/subtractor.rb +17 -0
- data/lib/rbs/type_name.rb +4 -4
- data/lib/rbs/version.rb +1 -1
- data/rbs.gemspec +1 -1
- data/schema/decls.json +1 -1
- data/sig/errors.rbs +54 -0
- data/sig/parser.rbs +2 -2
- data/sig/prototype/rb.rbs +9 -1
- data/sig/subtractor.rbs +4 -0
- data/stdlib/logger/0/logger.rbs +1 -1
- data/stdlib/observable/0/observable.rbs +219 -0
- data/stdlib/uri/0/common.rbs +24 -0
- data/stdlib/zlib/0/buf_error.rbs +79 -0
- data/stdlib/zlib/0/data_error.rbs +79 -0
- data/stdlib/zlib/0/deflate.rbs +276 -0
- data/stdlib/zlib/0/error.rbs +89 -0
- data/stdlib/zlib/0/gzip_file/crc_error.rbs +115 -0
- data/stdlib/zlib/0/gzip_file/error.rbs +128 -0
- data/stdlib/zlib/0/gzip_file/length_error.rbs +115 -0
- data/stdlib/zlib/0/gzip_file/no_footer.rbs +114 -0
- data/stdlib/zlib/0/gzip_file.rbs +228 -0
- data/stdlib/zlib/0/gzip_reader.rbs +362 -0
- data/stdlib/zlib/0/gzip_writer.rbs +237 -0
- data/stdlib/zlib/0/inflate.rbs +249 -0
- data/stdlib/zlib/0/mem_error.rbs +79 -0
- data/stdlib/zlib/0/need_dict.rbs +82 -0
- data/stdlib/zlib/0/stream_end.rbs +80 -0
- data/stdlib/zlib/0/stream_error.rbs +80 -0
- data/stdlib/zlib/0/version_error.rbs +80 -0
- data/stdlib/zlib/0/zstream.rbs +270 -0
- metadata +24 -8
- 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
data/core/io.rbs
CHANGED
@@ -694,7 +694,7 @@ class IO < Object
|
|
694
694
|
# # ...
|
695
695
|
# f.gets # won't cause Errno::EBADF
|
696
696
|
#
|
697
|
-
def autoclose=: (boolish) ->
|
697
|
+
def autoclose=: (boolish bool) -> boolish
|
698
698
|
|
699
699
|
# <!--
|
700
700
|
# rdoc-file=io.c
|
@@ -756,7 +756,7 @@ class IO < Object
|
|
756
756
|
#
|
757
757
|
# Related: IO#close_read, IO#close_write, IO#closed?.
|
758
758
|
#
|
759
|
-
def close: () ->
|
759
|
+
def close: () -> nil
|
760
760
|
|
761
761
|
# <!--
|
762
762
|
# rdoc-file=io.c
|
@@ -775,7 +775,7 @@ class IO < Object
|
|
775
775
|
# (via system() method for example). If you really needs file descriptor
|
776
776
|
# inheritance to child process, use spawn()'s argument such as fd=>fd.
|
777
777
|
#
|
778
|
-
def close_on_exec=: (boolish) ->
|
778
|
+
def close_on_exec=: (boolish bool) -> nil
|
779
779
|
|
780
780
|
# <!--
|
781
781
|
# rdoc-file=io.c
|
@@ -821,7 +821,7 @@ class IO < Object
|
|
821
821
|
#
|
822
822
|
# Related: IO#close, IO#close_write, IO#closed?.
|
823
823
|
#
|
824
|
-
def close_read: () ->
|
824
|
+
def close_read: () -> nil
|
825
825
|
|
826
826
|
# <!--
|
827
827
|
# rdoc-file=io.c
|
@@ -853,7 +853,7 @@ class IO < Object
|
|
853
853
|
#
|
854
854
|
# Related: IO#close, IO#close_read, IO#closed?.
|
855
855
|
#
|
856
|
-
def close_write: () ->
|
856
|
+
def close_write: () -> nil
|
857
857
|
|
858
858
|
# <!--
|
859
859
|
# rdoc-file=io.c
|
@@ -880,113 +880,6 @@ class IO < Object
|
|
880
880
|
#
|
881
881
|
def closed?: () -> bool
|
882
882
|
|
883
|
-
# <!--
|
884
|
-
# rdoc-file=io.c
|
885
|
-
# - each_line(sep = $/, chomp: false) {|line| ... } -> self
|
886
|
-
# - each_line(limit, chomp: false) {|line| ... } -> self
|
887
|
-
# - each_line(sep, limit, chomp: false) {|line| ... } -> self
|
888
|
-
# - each_line -> enumerator
|
889
|
-
# -->
|
890
|
-
# Calls the block with each remaining line read from the stream; returns `self`.
|
891
|
-
# Does nothing if already at end-of-stream; See [Line IO](rdoc-ref:IO@Line+IO).
|
892
|
-
#
|
893
|
-
# With no arguments given, reads lines as determined by line separator `$/`:
|
894
|
-
#
|
895
|
-
# f = File.new('t.txt')
|
896
|
-
# f.each_line {|line| p line }
|
897
|
-
# f.each_line {|line| fail 'Cannot happen' }
|
898
|
-
# f.close
|
899
|
-
#
|
900
|
-
# Output:
|
901
|
-
#
|
902
|
-
# "First line\n"
|
903
|
-
# "Second line\n"
|
904
|
-
# "\n"
|
905
|
-
# "Fourth line\n"
|
906
|
-
# "Fifth line\n"
|
907
|
-
#
|
908
|
-
# With only string argument `sep` given, reads lines as determined by line
|
909
|
-
# separator `sep`; see [Line Separator](rdoc-ref:IO@Line+Separator):
|
910
|
-
#
|
911
|
-
# f = File.new('t.txt')
|
912
|
-
# f.each_line('li') {|line| p line }
|
913
|
-
# f.close
|
914
|
-
#
|
915
|
-
# Output:
|
916
|
-
#
|
917
|
-
# "First li"
|
918
|
-
# "ne\nSecond li"
|
919
|
-
# "ne\n\nFourth li"
|
920
|
-
# "ne\nFifth li"
|
921
|
-
# "ne\n"
|
922
|
-
#
|
923
|
-
# The two special values for `sep` are honored:
|
924
|
-
#
|
925
|
-
# f = File.new('t.txt')
|
926
|
-
# # Get all into one string.
|
927
|
-
# f.each_line(nil) {|line| p line }
|
928
|
-
# f.close
|
929
|
-
#
|
930
|
-
# Output:
|
931
|
-
#
|
932
|
-
# "First line\nSecond line\n\nFourth line\nFifth line\n"
|
933
|
-
#
|
934
|
-
# f.rewind
|
935
|
-
# # Get paragraphs (up to two line separators).
|
936
|
-
# f.each_line('') {|line| p line }
|
937
|
-
#
|
938
|
-
# Output:
|
939
|
-
#
|
940
|
-
# "First line\nSecond line\n\n"
|
941
|
-
# "Fourth line\nFifth line\n"
|
942
|
-
#
|
943
|
-
# With only integer argument `limit` given, limits the number of bytes in each
|
944
|
-
# line; see [Line Limit](rdoc-ref:IO@Line+Limit):
|
945
|
-
#
|
946
|
-
# f = File.new('t.txt')
|
947
|
-
# f.each_line(8) {|line| p line }
|
948
|
-
# f.close
|
949
|
-
#
|
950
|
-
# Output:
|
951
|
-
#
|
952
|
-
# "First li"
|
953
|
-
# "ne\n"
|
954
|
-
# "Second l"
|
955
|
-
# "ine\n"
|
956
|
-
# "\n"
|
957
|
-
# "Fourth l"
|
958
|
-
# "ine\n"
|
959
|
-
# "Fifth li"
|
960
|
-
# "ne\n"
|
961
|
-
#
|
962
|
-
# With arguments `sep` and `limit` given, combines the two behaviors:
|
963
|
-
#
|
964
|
-
# * Calls with the next line as determined by line separator `sep`.
|
965
|
-
# * But returns no more bytes than are allowed by the limit.
|
966
|
-
#
|
967
|
-
#
|
968
|
-
# Optional keyword argument `chomp` specifies whether line separators are to be
|
969
|
-
# omitted:
|
970
|
-
#
|
971
|
-
# f = File.new('t.txt')
|
972
|
-
# f.each_line(chomp: true) {|line| p line }
|
973
|
-
# f.close
|
974
|
-
#
|
975
|
-
# Output:
|
976
|
-
#
|
977
|
-
# "First line"
|
978
|
-
# "Second line"
|
979
|
-
# ""
|
980
|
-
# "Fourth line"
|
981
|
-
# "Fifth line"
|
982
|
-
#
|
983
|
-
# Returns an Enumerator if no block is given.
|
984
|
-
#
|
985
|
-
# IO#each is an alias for IO#each_line.
|
986
|
-
#
|
987
|
-
def each: (?String sep, ?Integer limit) { (String arg0) -> untyped } -> self
|
988
|
-
| (?String sep, ?Integer limit) -> ::Enumerator[String, self]
|
989
|
-
|
990
883
|
# <!--
|
991
884
|
# rdoc-file=io.c
|
992
885
|
# - each_byte {|byte| ... } -> self
|
@@ -1005,7 +898,7 @@ class IO < Object
|
|
1005
898
|
#
|
1006
899
|
# Related: IO#each_char, IO#each_codepoint.
|
1007
900
|
#
|
1008
|
-
def each_byte: () { (Integer
|
901
|
+
def each_byte: () { (Integer byte) -> void } -> self
|
1009
902
|
| () -> ::Enumerator[Integer, self]
|
1010
903
|
|
1011
904
|
# <!--
|
@@ -1026,7 +919,7 @@ class IO < Object
|
|
1026
919
|
#
|
1027
920
|
# Related: IO#each_byte, IO#each_codepoint.
|
1028
921
|
#
|
1029
|
-
def each_char: () { (String
|
922
|
+
def each_char: () { (String c) -> void } -> self
|
1030
923
|
| () -> ::Enumerator[String, self]
|
1031
924
|
|
1032
925
|
# <!--
|
@@ -1046,7 +939,7 @@ class IO < Object
|
|
1046
939
|
#
|
1047
940
|
# Related: IO#each_byte, IO#each_char.
|
1048
941
|
#
|
1049
|
-
def each_codepoint: () { (Integer
|
942
|
+
def each_codepoint: () { (Integer c) -> void } -> self
|
1050
943
|
| () -> ::Enumerator[Integer, self]
|
1051
944
|
|
1052
945
|
# <!--
|
@@ -1101,7 +994,7 @@ class IO < Object
|
|
1101
994
|
#
|
1102
995
|
# Not implemented on all platforms.
|
1103
996
|
#
|
1104
|
-
def fcntl: (Integer integer_cmd, String | Integer
|
997
|
+
def fcntl: (Integer integer_cmd, String | Integer argument) -> Integer
|
1105
998
|
|
1106
999
|
# <!--
|
1107
1000
|
# rdoc-file=io.c
|
@@ -1309,7 +1202,7 @@ class IO < Object
|
|
1309
1202
|
# IO.new(fd, internal_encoding: nil) # => #<IO:fd 3>
|
1310
1203
|
# IO.new(fd, autoclose: true) # => #<IO:fd 3>
|
1311
1204
|
#
|
1312
|
-
def initialize: (int fd, ?string | int mode, ?path: string?,
|
1205
|
+
def initialize: ( int fd, ?string | int mode, ?path: string?, ?external_encoding: String | Encoding | nil, ?internal_encoding: String | Encoding | nil, ?encoding: String | Encoding | nil, ?textmode: boolish, ?binmode: boolish, ?autoclose: boolish, ?mode: String) -> void
|
1313
1206
|
|
1314
1207
|
# <!--
|
1315
1208
|
# rdoc-file=io.c
|
@@ -1349,7 +1242,7 @@ class IO < Object
|
|
1349
1242
|
#
|
1350
1243
|
# Not implemented on all platforms.
|
1351
1244
|
#
|
1352
|
-
def ioctl: (Integer integer_cmd, String | Integer
|
1245
|
+
def ioctl: (Integer integer_cmd, String | Integer argument) -> Integer
|
1353
1246
|
|
1354
1247
|
# <!--
|
1355
1248
|
# rdoc-file=io.c
|
@@ -1383,7 +1276,7 @@ class IO < Object
|
|
1383
1276
|
# Sets and returns the line number for the stream; see [Line
|
1384
1277
|
# Number](rdoc-ref:IO@Line+Number).
|
1385
1278
|
#
|
1386
|
-
def lineno=: (Integer
|
1279
|
+
def lineno=: (Integer integer) -> Integer
|
1387
1280
|
|
1388
1281
|
# <!--
|
1389
1282
|
# rdoc-file=io.c
|
@@ -1421,22 +1314,6 @@ class IO < Object
|
|
1421
1314
|
#
|
1422
1315
|
def pid: () -> Integer
|
1423
1316
|
|
1424
|
-
# <!-- rdoc-file=io.c -->
|
1425
|
-
# Returns the current position (in bytes) in `self` (see
|
1426
|
-
# [Position](rdoc-ref:IO@Position)):
|
1427
|
-
#
|
1428
|
-
# f = File.open('t.txt')
|
1429
|
-
# f.tell # => 0
|
1430
|
-
# f.gets # => "First line\n"
|
1431
|
-
# f.tell # => 12
|
1432
|
-
# f.close
|
1433
|
-
#
|
1434
|
-
# Related: IO#pos=, IO#seek.
|
1435
|
-
#
|
1436
|
-
# IO#pos is an alias for IO#tell.
|
1437
|
-
#
|
1438
|
-
def pos: () -> Integer
|
1439
|
-
|
1440
1317
|
# <!--
|
1441
1318
|
# rdoc-file=io.c
|
1442
1319
|
# - pos = new_position -> new_position
|
@@ -1452,7 +1329,7 @@ class IO < Object
|
|
1452
1329
|
#
|
1453
1330
|
# Related: IO#seek, IO#tell.
|
1454
1331
|
#
|
1455
|
-
def pos=: (Integer
|
1332
|
+
def pos=: (Integer new_position) -> Integer
|
1456
1333
|
|
1457
1334
|
# <!--
|
1458
1335
|
# rdoc-file=io.c
|
@@ -1508,7 +1385,7 @@ class IO < Object
|
|
1508
1385
|
# f.print
|
1509
1386
|
# f.close
|
1510
1387
|
#
|
1511
|
-
def print: (*untyped
|
1388
|
+
def print: (*untyped objects) -> nil
|
1512
1389
|
|
1513
1390
|
# <!--
|
1514
1391
|
# rdoc-file=io.c
|
@@ -1519,7 +1396,7 @@ class IO < Object
|
|
1519
1396
|
# For details on `format_string`, see [Format
|
1520
1397
|
# Specifications](rdoc-ref:format_specifications.rdoc).
|
1521
1398
|
#
|
1522
|
-
def printf: (String format_string, *untyped
|
1399
|
+
def printf: (String format_string, *untyped objects) -> nil
|
1523
1400
|
|
1524
1401
|
# <!--
|
1525
1402
|
# rdoc-file=io.c
|
@@ -1539,7 +1416,7 @@ class IO < Object
|
|
1539
1416
|
#
|
1540
1417
|
# AA
|
1541
1418
|
#
|
1542
|
-
def putc: (Numeric | String
|
1419
|
+
def putc: (Numeric | String object) -> (Numeric | String)
|
1543
1420
|
|
1544
1421
|
# <!--
|
1545
1422
|
# rdoc-file=io.c
|
@@ -1586,7 +1463,7 @@ class IO < Object
|
|
1586
1463
|
# # Nested arrays.
|
1587
1464
|
# show([[[0, 1], 2, 3], 4, 5]) # => "0\n1\n2\n3\n4\n5\n"
|
1588
1465
|
#
|
1589
|
-
def puts: (*untyped
|
1466
|
+
def puts: (*untyped objects) -> nil
|
1590
1467
|
|
1591
1468
|
# <!--
|
1592
1469
|
# rdoc-file=io.c
|
@@ -2132,7 +2009,7 @@ class IO < Object
|
|
2132
2009
|
#
|
2133
2010
|
# Related: IO#fsync.
|
2134
2011
|
#
|
2135
|
-
def sync=: (boolish) ->
|
2012
|
+
def sync=: (boolish boolean) -> boolish
|
2136
2013
|
|
2137
2014
|
# <!--
|
2138
2015
|
# rdoc-file=io.c
|
@@ -2172,7 +2049,7 @@ class IO < Object
|
|
2172
2049
|
#
|
2173
2050
|
# This methods should not be used with other stream-writer methods.
|
2174
2051
|
#
|
2175
|
-
def syswrite: (_ToS
|
2052
|
+
def syswrite: (_ToS object) -> Integer
|
2176
2053
|
|
2177
2054
|
# <!--
|
2178
2055
|
# rdoc-file=io.c
|
@@ -2193,6 +2070,22 @@ class IO < Object
|
|
2193
2070
|
#
|
2194
2071
|
def tell: () -> Integer
|
2195
2072
|
|
2073
|
+
# <!-- rdoc-file=io.c -->
|
2074
|
+
# Returns the current position (in bytes) in `self` (see
|
2075
|
+
# [Position](rdoc-ref:IO@Position)):
|
2076
|
+
#
|
2077
|
+
# f = File.open('t.txt')
|
2078
|
+
# f.tell # => 0
|
2079
|
+
# f.gets # => "First line\n"
|
2080
|
+
# f.tell # => 12
|
2081
|
+
# f.close
|
2082
|
+
#
|
2083
|
+
# Related: IO#pos=, IO#seek.
|
2084
|
+
#
|
2085
|
+
# IO#pos is an alias for IO#tell.
|
2086
|
+
#
|
2087
|
+
alias pos tell
|
2088
|
+
|
2196
2089
|
# <!--
|
2197
2090
|
# rdoc-file=io.c
|
2198
2091
|
# - timeout -> duration or nil
|
@@ -2219,7 +2112,7 @@ class IO < Object
|
|
2219
2112
|
# effort to prevent an application from hanging on slow I/O operations, such as
|
2220
2113
|
# those that occur during a slowloris attack.
|
2221
2114
|
#
|
2222
|
-
def timeout=: (Numeric?) -> void
|
2115
|
+
def timeout=: (Numeric? duration) -> void
|
2223
2116
|
|
2224
2117
|
# <!--
|
2225
2118
|
# rdoc-file=io.c
|
@@ -2240,7 +2133,7 @@ class IO < Object
|
|
2240
2133
|
#
|
2241
2134
|
# IO#tty? is an alias for IO#isatty.
|
2242
2135
|
#
|
2243
|
-
|
2136
|
+
alias tty? isatty
|
2244
2137
|
|
2245
2138
|
# <!--
|
2246
2139
|
# rdoc-file=io.c
|
@@ -2280,7 +2173,7 @@ class IO < Object
|
|
2280
2173
|
# f.read # => "BCDE012"
|
2281
2174
|
# f.close
|
2282
2175
|
#
|
2283
|
-
def ungetbyte: (String | Integer
|
2176
|
+
def ungetbyte: (String | Integer object) -> nil
|
2284
2177
|
|
2285
2178
|
# <!--
|
2286
2179
|
# rdoc-file=io.c
|
@@ -2323,7 +2216,7 @@ class IO < Object
|
|
2323
2216
|
# f.getc.ord # => 1090
|
2324
2217
|
# f.close
|
2325
2218
|
#
|
2326
|
-
def ungetc: (String
|
2219
|
+
def ungetc: (String object) -> nil
|
2327
2220
|
|
2328
2221
|
# <!--
|
2329
2222
|
# rdoc-file=io.c
|
@@ -2647,7 +2540,10 @@ class IO < Object
|
|
2647
2540
|
#
|
2648
2541
|
# Raises exceptions that IO.pipe and Kernel.spawn raise.
|
2649
2542
|
#
|
2650
|
-
def self.popen: (
|
2543
|
+
def self.popen: (string cmd, ?string | int mode, ?path: string?, ?external_encoding: String | Encoding | nil, ?internal_encoding: String | Encoding | nil, ?encoding: String | Encoding | nil, ?textmode: boolish, ?binmode: boolish, ?autoclose: boolish, ?mode: String, ?unsetenv_others: boolish, ?pgroup: true | Integer, ?umask: Integer, ?in: Kernel::redirect_fd, ?out: Kernel::redirect_fd, ?err: Kernel::redirect_fd, ?close_others: boolish, ?chdir: String) -> instance
|
2544
|
+
| (Hash[string, string?] env, string cmd, ?string | int mode, ?path: string?, ?external_encoding: String | Encoding | nil, ?internal_encoding: String | Encoding | nil, ?encoding: String | Encoding | nil, ?textmode: boolish, ?binmode: boolish, ?autoclose: boolish, ?mode: String, ?unsetenv_others: boolish, ?pgroup: true | Integer, ?umask: Integer, ?in: Kernel::redirect_fd, ?out: Kernel::redirect_fd, ?err: Kernel::redirect_fd, ?close_others: boolish, ?chdir: String) -> instance
|
2545
|
+
| [X] (string cmd, ?string | int mode, ?path: string?, ?external_encoding: String | Encoding | nil, ?internal_encoding: String | Encoding | nil, ?encoding: String | Encoding | nil, ?textmode: boolish, ?binmode: boolish, ?autoclose: boolish, ?mode: String, ?unsetenv_others: boolish, ?pgroup: true | Integer, ?umask: Integer, ?in: Kernel::redirect_fd, ?out: Kernel::redirect_fd, ?err: Kernel::redirect_fd, ?close_others: boolish, ?chdir: String) { (instance) -> X } -> X
|
2546
|
+
| [X] (Hash[string, string?] env, string cmd, ?string | int mode, ?path: string?, ?external_encoding: String | Encoding | nil, ?internal_encoding: String | Encoding | nil, ?encoding: String | Encoding | nil, ?textmode: boolish, ?binmode: boolish, ?autoclose: boolish, ?mode: String, ?unsetenv_others: boolish, ?pgroup: true | Integer, ?umask: Integer, ?in: Kernel::redirect_fd, ?out: Kernel::redirect_fd, ?err: Kernel::redirect_fd, ?close_others: boolish, ?chdir: String) { (instance) -> X } -> X
|
2651
2547
|
|
2652
2548
|
# <!--
|
2653
2549
|
# rdoc-file=io.c
|
@@ -2740,8 +2636,8 @@ class IO < Object
|
|
2740
2636
|
#
|
2741
2637
|
# Returns an Enumerator if no block is given.
|
2742
2638
|
#
|
2743
|
-
def self.foreach: (string | _ToPath path, ?String sep, ?Integer limit, ?external_encoding: String
|
2744
|
-
| (string | _ToPath path, ?String sep, ?Integer limit, ?external_encoding: String
|
2639
|
+
def self.foreach: (string | _ToPath path, ?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) { (String line) -> void } -> nil
|
2640
|
+
| (string | _ToPath path, ?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) -> ::Enumerator[String, nil]
|
2745
2641
|
|
2746
2642
|
# <!--
|
2747
2643
|
# rdoc-file=io.c
|
@@ -2821,8 +2717,8 @@ class IO < Object
|
|
2821
2717
|
# Sending message to parent
|
2822
2718
|
# Parent got: <Hi Dad>
|
2823
2719
|
#
|
2824
|
-
def self.pipe: (?String | Encoding ext_or_ext_int_enc, ?String | Encoding int_enc, ?external_encoding: String
|
2825
|
-
| [X] (?String | Encoding ext_or_ext_int_enc, ?String | Encoding int_enc, ?external_encoding: String
|
2720
|
+
def self.pipe: (?String | Encoding | nil ext_or_ext_int_enc, ?String | Encoding | nil int_enc, ?external_encoding: String | Encoding | nil, ?internal_encoding: String | Encoding | nil, ?encoding: String | Encoding | nil, ?textmode: boolish, ?binmode: boolish, ?autoclose: boolish, ?mode: String, ?chomp: boolish) -> [IO, IO]
|
2721
|
+
| [X] (?String | Encoding | nil ext_or_ext_int_enc, ?String | Encoding | nil int_enc, ?external_encoding: String | Encoding | nil, ?internal_encoding: String | Encoding | nil, ?encoding: String | Encoding | nil, ?textmode: boolish, ?binmode: boolish, ?autoclose: boolish, ?mode: String, ?chomp: boolish) { (IO read_io, IO write_io) -> X } -> X
|
2826
2722
|
|
2827
2723
|
# <!--
|
2828
2724
|
# rdoc-file=io.c
|
@@ -2879,7 +2775,7 @@ class IO < Object
|
|
2879
2775
|
# * [Open Options](rdoc-ref:IO@Open+Options).
|
2880
2776
|
# * [Encoding options](rdoc-ref:encodings.rdoc@Encoding+Options).
|
2881
2777
|
#
|
2882
|
-
def self.read: (String name, ?Integer length, ?Integer offset, ?external_encoding: String
|
2778
|
+
def self.read: (String name, ?Integer length, ?Integer offset, ?external_encoding: String | Encoding | nil, ?internal_encoding: String | Encoding | nil, ?encoding: String | Encoding | nil, ?textmode: boolish, ?binmode: boolish, ?autoclose: boolish, ?mode: String) -> String
|
2883
2779
|
|
2884
2780
|
# <!--
|
2885
2781
|
# rdoc-file=io.c
|
@@ -2950,7 +2846,7 @@ class IO < Object
|
|
2950
2846
|
# * [Encoding options](rdoc-ref:encodings.rdoc@Encoding+Options).
|
2951
2847
|
# * [Line Options](rdoc-ref:IO@Line+Options).
|
2952
2848
|
#
|
2953
|
-
def self.readlines: (String | _ToPath name, ?String sep, ?Integer limit, ?external_encoding: String
|
2849
|
+
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]
|
2954
2850
|
|
2955
2851
|
# <!--
|
2956
2852
|
# rdoc-file=io.c
|
@@ -3121,7 +3017,8 @@ class IO < Object
|
|
3121
3017
|
# IO.try_convert(ARGF) # => #<IO:<STDIN>>
|
3122
3018
|
# IO.try_convert('STDOUT') # => nil
|
3123
3019
|
#
|
3124
|
-
def self.try_convert: (
|
3020
|
+
def self.try_convert: (_ToIO obj) -> IO
|
3021
|
+
| (untyped obj) -> IO?
|
3125
3022
|
|
3126
3023
|
# <!--
|
3127
3024
|
# rdoc-file=io.c
|
@@ -3182,7 +3079,7 @@ class IO < Object
|
|
3182
3079
|
# * [Open Options](rdoc-ref:IO@Open+Options).
|
3183
3080
|
# * [Encoding options](rdoc-ref:encodings.rdoc@Encoding+Options).
|
3184
3081
|
#
|
3185
|
-
def self.write: (String
|
3082
|
+
def self.write: (String path, _ToS data, ?Integer offset, ?external_encoding: String | Encoding | nil, ?internal_encoding: String | Encoding | nil, ?encoding: String | Encoding | nil, ?textmode: boolish, ?binmode: boolish, ?autoclose: boolish, ?mode: String) -> Integer
|
3186
3083
|
|
3187
3084
|
# <!--
|
3188
3085
|
# rdoc-file=io.c
|
@@ -3204,17 +3101,8 @@ class IO < Object
|
|
3204
3101
|
# With a block given, calls the block with the IO object and returns the block's
|
3205
3102
|
# value.
|
3206
3103
|
#
|
3207
|
-
def self.open: (int fd, ?string | int mode, ?path: string?,
|
3208
|
-
| [
|
3209
|
-
|
3210
|
-
def bytes: () { (Integer arg0) -> untyped } -> self
|
3211
|
-
| () -> ::Enumerator[Integer, self]
|
3212
|
-
|
3213
|
-
def chars: () { (String arg0) -> untyped } -> self
|
3214
|
-
| () -> ::Enumerator[String, self]
|
3215
|
-
|
3216
|
-
def codepoints: () { (Integer arg0) -> untyped } -> self
|
3217
|
-
| () -> ::Enumerator[Integer, self]
|
3104
|
+
def self.open: (int fd, ?string | int mode, ?path: string?, ?external_encoding: String | Encoding | nil, ?internal_encoding: String | Encoding | nil, ?encoding: String | Encoding | nil, ?textmode: boolish, ?binmode: boolish, ?autoclose: boolish, ?mode: String) -> instance
|
3105
|
+
| [X] (int fd, ?string | int mode, ?path: string?, ?external_encoding: String | Encoding | nil, ?internal_encoding: String | Encoding | nil, ?encoding: String | Encoding | nil, ?textmode: boolish, ?binmode: boolish, ?autoclose: boolish, ?mode: String) { (instance) -> X } -> X
|
3218
3106
|
|
3219
3107
|
# <!-- rdoc-file=io.c -->
|
3220
3108
|
# Calls the block with each remaining line read from the stream; returns `self`.
|
@@ -3314,9 +3202,115 @@ class IO < Object
|
|
3314
3202
|
#
|
3315
3203
|
# IO#each is an alias for IO#each_line.
|
3316
3204
|
#
|
3317
|
-
def each_line: (?String sep, ?Integer limit) { (String
|
3205
|
+
def each_line: (?String sep, ?Integer limit) { (String line) -> void } -> self
|
3318
3206
|
| (?String sep, ?Integer limit) -> ::Enumerator[String, self]
|
3319
3207
|
|
3208
|
+
# <!--
|
3209
|
+
# rdoc-file=io.c
|
3210
|
+
# - each_line(sep = $/, chomp: false) {|line| ... } -> self
|
3211
|
+
# - each_line(limit, chomp: false) {|line| ... } -> self
|
3212
|
+
# - each_line(sep, limit, chomp: false) {|line| ... } -> self
|
3213
|
+
# - each_line -> enumerator
|
3214
|
+
# -->
|
3215
|
+
# Calls the block with each remaining line read from the stream; returns `self`.
|
3216
|
+
# Does nothing if already at end-of-stream; See [Line IO](rdoc-ref:IO@Line+IO).
|
3217
|
+
#
|
3218
|
+
# With no arguments given, reads lines as determined by line separator `$/`:
|
3219
|
+
#
|
3220
|
+
# f = File.new('t.txt')
|
3221
|
+
# f.each_line {|line| p line }
|
3222
|
+
# f.each_line {|line| fail 'Cannot happen' }
|
3223
|
+
# f.close
|
3224
|
+
#
|
3225
|
+
# Output:
|
3226
|
+
#
|
3227
|
+
# "First line\n"
|
3228
|
+
# "Second line\n"
|
3229
|
+
# "\n"
|
3230
|
+
# "Fourth line\n"
|
3231
|
+
# "Fifth line\n"
|
3232
|
+
#
|
3233
|
+
# With only string argument `sep` given, reads lines as determined by line
|
3234
|
+
# separator `sep`; see [Line Separator](rdoc-ref:IO@Line+Separator):
|
3235
|
+
#
|
3236
|
+
# f = File.new('t.txt')
|
3237
|
+
# f.each_line('li') {|line| p line }
|
3238
|
+
# f.close
|
3239
|
+
#
|
3240
|
+
# Output:
|
3241
|
+
#
|
3242
|
+
# "First li"
|
3243
|
+
# "ne\nSecond li"
|
3244
|
+
# "ne\n\nFourth li"
|
3245
|
+
# "ne\nFifth li"
|
3246
|
+
# "ne\n"
|
3247
|
+
#
|
3248
|
+
# The two special values for `sep` are honored:
|
3249
|
+
#
|
3250
|
+
# f = File.new('t.txt')
|
3251
|
+
# # Get all into one string.
|
3252
|
+
# f.each_line(nil) {|line| p line }
|
3253
|
+
# f.close
|
3254
|
+
#
|
3255
|
+
# Output:
|
3256
|
+
#
|
3257
|
+
# "First line\nSecond line\n\nFourth line\nFifth line\n"
|
3258
|
+
#
|
3259
|
+
# f.rewind
|
3260
|
+
# # Get paragraphs (up to two line separators).
|
3261
|
+
# f.each_line('') {|line| p line }
|
3262
|
+
#
|
3263
|
+
# Output:
|
3264
|
+
#
|
3265
|
+
# "First line\nSecond line\n\n"
|
3266
|
+
# "Fourth line\nFifth line\n"
|
3267
|
+
#
|
3268
|
+
# With only integer argument `limit` given, limits the number of bytes in each
|
3269
|
+
# line; see [Line Limit](rdoc-ref:IO@Line+Limit):
|
3270
|
+
#
|
3271
|
+
# f = File.new('t.txt')
|
3272
|
+
# f.each_line(8) {|line| p line }
|
3273
|
+
# f.close
|
3274
|
+
#
|
3275
|
+
# Output:
|
3276
|
+
#
|
3277
|
+
# "First li"
|
3278
|
+
# "ne\n"
|
3279
|
+
# "Second l"
|
3280
|
+
# "ine\n"
|
3281
|
+
# "\n"
|
3282
|
+
# "Fourth l"
|
3283
|
+
# "ine\n"
|
3284
|
+
# "Fifth li"
|
3285
|
+
# "ne\n"
|
3286
|
+
#
|
3287
|
+
# With arguments `sep` and `limit` given, combines the two behaviors:
|
3288
|
+
#
|
3289
|
+
# * Calls with the next line as determined by line separator `sep`.
|
3290
|
+
# * But returns no more bytes than are allowed by the limit.
|
3291
|
+
#
|
3292
|
+
#
|
3293
|
+
# Optional keyword argument `chomp` specifies whether line separators are to be
|
3294
|
+
# omitted:
|
3295
|
+
#
|
3296
|
+
# f = File.new('t.txt')
|
3297
|
+
# f.each_line(chomp: true) {|line| p line }
|
3298
|
+
# f.close
|
3299
|
+
#
|
3300
|
+
# Output:
|
3301
|
+
#
|
3302
|
+
# "First line"
|
3303
|
+
# "Second line"
|
3304
|
+
# ""
|
3305
|
+
# "Fourth line"
|
3306
|
+
# "Fifth line"
|
3307
|
+
#
|
3308
|
+
# Returns an Enumerator if no block is given.
|
3309
|
+
#
|
3310
|
+
# IO#each is an alias for IO#each_line.
|
3311
|
+
#
|
3312
|
+
alias each each_line
|
3313
|
+
|
3320
3314
|
# <!-- rdoc-file=io.c -->
|
3321
3315
|
# Returns `true` if the stream is positioned at its end, `false` otherwise; see
|
3322
3316
|
# [Position](rdoc-ref:IO@Position):
|
@@ -3350,10 +3344,7 @@ class IO < Object
|
|
3350
3344
|
#
|
3351
3345
|
# IO#eof? is an alias for IO#eof.
|
3352
3346
|
#
|
3353
|
-
|
3354
|
-
|
3355
|
-
def lines: (?String sep, ?Integer limit) { (String arg0) -> untyped } -> self
|
3356
|
-
| (?String sep, ?Integer limit) -> ::Enumerator[String, self]
|
3347
|
+
alias eof? eof
|
3357
3348
|
|
3358
3349
|
# <!-- rdoc-file=io.c -->
|
3359
3350
|
# Returns the integer file descriptor for the stream:
|
@@ -3366,7 +3357,7 @@ class IO < Object
|
|
3366
3357
|
#
|
3367
3358
|
# IO#to_i is an alias for IO#fileno.
|
3368
3359
|
#
|
3369
|
-
|
3360
|
+
alias to_i fileno
|
3370
3361
|
end
|
3371
3362
|
|
3372
3363
|
IO::APPEND: Integer
|
data/core/kernel.rbs
CHANGED
@@ -807,7 +807,7 @@ module Kernel : BasicObject
|
|
807
807
|
#
|
808
808
|
# Process.exit!(true)
|
809
809
|
#
|
810
|
-
def self?.exit!: (Integer | TrueClass | FalseClass status) -> bot
|
810
|
+
def self?.exit!: (?Integer | TrueClass | FalseClass status) -> bot
|
811
811
|
|
812
812
|
# <!-- rdoc-file=eval.c -->
|
813
813
|
# With no arguments, raises the exception in `$!` or raises a RuntimeError if
|
@@ -1241,7 +1241,8 @@ module Kernel : BasicObject
|
|
1241
1241
|
# [0..4, 0..4, 0..4]
|
1242
1242
|
#
|
1243
1243
|
def self?.p: [T] (T arg0) -> T
|
1244
|
-
| (*untyped
|
1244
|
+
| (untyped, untyped, *untyped) -> Array[untyped]
|
1245
|
+
| () -> nil
|
1245
1246
|
|
1246
1247
|
# <!--
|
1247
1248
|
# rdoc-file=lib/pp.rb
|
@@ -1252,7 +1253,8 @@ module Kernel : BasicObject
|
|
1252
1253
|
# pp returns argument(s).
|
1253
1254
|
#
|
1254
1255
|
def self?.pp: [T] (T arg0) -> T
|
1255
|
-
| (*untyped
|
1256
|
+
| (untyped, untyped, *untyped) -> Array[untyped]
|
1257
|
+
| () -> nil
|
1256
1258
|
|
1257
1259
|
# <!--
|
1258
1260
|
# rdoc-file=random.c
|
@@ -1770,7 +1772,8 @@ module Kernel : BasicObject
|
|
1770
1772
|
# exec "echo", "*" # echoes an asterisk
|
1771
1773
|
# # never get here
|
1772
1774
|
#
|
1773
|
-
def self?.exec: (*String args) -> bot
|
1775
|
+
def self?.exec: (String command, *String args, ?unsetenv_others: boolish, ?pgroup: true | Integer, ?umask: Integer, ?in: redirect_fd, ?out: redirect_fd, ?err: redirect_fd, ?close_others: boolish, ?chdir: String) -> bot
|
1776
|
+
| (Hash[string, string?] env, String command, *String args, ?unsetenv_others: boolish, ?pgroup: true | Integer, ?umask: Integer, ?in: redirect_fd, ?out: redirect_fd, ?err: redirect_fd, ?close_others: boolish, ?chdir: String) -> bot
|
1774
1777
|
|
1775
1778
|
type redirect_fd = Integer | :in | :out | :err | IO | String | [ String ] | [ String, string | int ] | [ String, string | int, int ] | [ :child, int ] | :close
|
1776
1779
|
|