rbs 3.1.3 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +0 -6
- data/CHANGELOG.md +82 -0
- data/Gemfile +0 -6
- data/Gemfile.lock +12 -21
- data/README.md +1 -1
- data/Rakefile +45 -1
- data/Steepfile +3 -3
- data/core/array.rbs +0 -8
- data/core/binding.rbs +7 -69
- data/core/builtin.rbs +33 -8
- data/core/constants.rbs +13 -5
- data/core/dir.rbs +25 -25
- data/core/errno.rbs +474 -590
- data/core/exception.rbs +1 -1
- data/core/global_variables.rbs +27 -27
- data/core/io.rbs +163 -172
- data/core/kernel.rbs +58 -38
- data/core/module.rbs +34 -32
- data/core/object.rbs +3 -7
- data/core/string_io.rbs +9 -0
- data/core/thread.rbs +25 -1
- data/core/time.rbs +3 -3
- data/core/warning.rbs +3 -1
- 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/config/lockfile_generator.rb +6 -2
- 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 +22 -6
- 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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3785c4b5642259ae2d30d7fc88b188283a43367053a2cf958238f800a1aef7dc
|
4
|
+
data.tar.gz: a15b431352b349d6d0d3eb034b0a892bc85502ddd5c1158bd41980baee01760a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fec87dba1128481d962646c4a2cc0d8243cc18971584633c1565d70fc2d8d09c94823b60990c4c6ad9ad3167e8c60421c60bfb5f194c1bcbd5079bff7a454ee5
|
7
|
+
data.tar.gz: f5f0ead8e4db8c05b11f9d6bbad2be09f0f3951701c58bbf5ffbe62ec2e5ce149dfe53a82b9f7f3cded1871fb80b78177e19fbce5775368f0907bf5b686c8e74
|
data/.github/workflows/ruby.yml
CHANGED
@@ -17,8 +17,6 @@ jobs:
|
|
17
17
|
- 3.2-dev-focal
|
18
18
|
- 3.1-dev-focal
|
19
19
|
- 3.0-dev-focal
|
20
|
-
- 2.7-dev-bionic
|
21
|
-
- 2.6-bionic
|
22
20
|
job:
|
23
21
|
- test
|
24
22
|
- stdlib_test
|
@@ -28,10 +26,6 @@ jobs:
|
|
28
26
|
exclude:
|
29
27
|
- container_tag: master-nightly-focal
|
30
28
|
job: confirm_lexer
|
31
|
-
- container_tag: 2.6-bionic
|
32
|
-
job: stdlib_test
|
33
|
-
- container_tag: 2.7-dev-bionic
|
34
|
-
job: stdlib_test
|
35
29
|
- container_tag: 3.0-dev-focal
|
36
30
|
job: stdlib_test
|
37
31
|
- container_tag: 3.1-dev-focal
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,88 @@
|
|
2
2
|
|
3
3
|
## master
|
4
4
|
|
5
|
+
## 3.2.0 (2023-08-22)
|
6
|
+
|
7
|
+
### Signature updates
|
8
|
+
|
9
|
+
* `Binding` ([#1451](https://github.com/ruby/rbs/pull/1451))
|
10
|
+
* `Kernel` ([#1445](https://github.com/ruby/rbs/pull/1445), [#1444](https://github.com/ruby/rbs/pull/1444), [#1443](https://github.com/ruby/rbs/pull/1443), [#1441](https://github.com/ruby/rbs/pull/1441), [#1440](https://github.com/ruby/rbs/pull/1440))
|
11
|
+
* `Errno` ([#1450](https://github.com/ruby/rbs/pull/1450))
|
12
|
+
|
13
|
+
### Library changes
|
14
|
+
|
15
|
+
#### rbs collection
|
16
|
+
|
17
|
+
* Fix LockfileGenerator crashes if failed to get deps for locked source ([#1413](https://github.com/ruby/rbs/pull/1413))
|
18
|
+
|
19
|
+
## 3.2.0.pre.1 (2023-08-18)
|
20
|
+
|
21
|
+
### Signature updates
|
22
|
+
|
23
|
+
* observable ([#1424](https://github.com/ruby/rbs/pull/1424))
|
24
|
+
* uri ([#1371](https://github.com/ruby/rbs/pull/1371))
|
25
|
+
* zlib ([#1389](https://github.com/ruby/rbs/pull/1389))
|
26
|
+
* `IO` ([#1399](https://github.com/ruby/rbs/pull/1399))
|
27
|
+
* `::DATA` ([#1395](https://github.com/ruby/rbs/pull/1395))
|
28
|
+
* `$DEBUG` ([#1427](https://github.com/ruby/rbs/pull/1427))
|
29
|
+
* `ConditionVariable#wait` ([#1397](https://github.com/ruby/rbs/pull/1397))
|
30
|
+
* `Kernel::exit!` ([#1396](https://github.com/ruby/rbs/pull/1396))
|
31
|
+
* `Kernel#exec` ([#1368](https://github.com/ruby/rbs/pull/1368))
|
32
|
+
* `Kernel#p`, `Kernel#pp` ([#1342](https://github.com/ruby/rbs/pull/1342))
|
33
|
+
* `Logger.new` ([#1423](https://github.com/ruby/rbs/pull/1423))
|
34
|
+
* `Module` ([#1321](https://github.com/ruby/rbs/pull/1321))
|
35
|
+
* `Object#define_singleton_method` ([#1431](https://github.com/ruby/rbs/pull/1431))
|
36
|
+
* `Object#enum_for` ([#1327](https://github.com/ruby/rbs/pull/1327))
|
37
|
+
* `StringIO#truncate` ([#1425](https://github.com/ruby/rbs/pull/1425))
|
38
|
+
* `Thread#raise` ([#1426](https://github.com/ruby/rbs/pull/1426))
|
39
|
+
* `Time#round`, `Time#floor`, `Time#ceil` ([#1337](https://github.com/ruby/rbs/pull/1337))
|
40
|
+
* Remove `TRUE`, `FALSE`, and `NIL` constants ([#1432](https://github.com/ruby/rbs/pull/1432))
|
41
|
+
* Updated builtin.rbs's interfaces ([#1429](https://github.com/ruby/rbs/pull/1429))
|
42
|
+
* Convert `| nil` to `?` in global_variables.rbs ([#1430](https://github.com/ruby/rbs/pull/1430))
|
43
|
+
* Remove references to the transient heap ([#1374](https://github.com/ruby/rbs/pull/1374))
|
44
|
+
|
45
|
+
### Library changes
|
46
|
+
|
47
|
+
* subtract: Remove RBS file if the subtracted definition is empty ([#1385](https://github.com/ruby/rbs/pull/1385))
|
48
|
+
* subtract: Filter redundant access modifiers ([#1384](https://github.com/ruby/rbs/pull/1384))
|
49
|
+
* Fix module alias normalizations ([#1393](https://github.com/ruby/rbs/pull/1393))
|
50
|
+
* Reduce memory allocation on TypeName#initialize ([#1363](https://github.com/ruby/rbs/pull/1363))
|
51
|
+
* Fix a type error in FileFinder ([#1326](https://github.com/ruby/rbs/pull/1326))
|
52
|
+
* Add signatures about DetailedMessage ([#1323](https://github.com/ruby/rbs/pull/1323))
|
53
|
+
* Make TypeNameResolver more compatible with Ruby ([#1373](https://github.com/ruby/rbs/pull/1373))
|
54
|
+
* Drop support of Ruby 2.x ([#1364](https://github.com/ruby/rbs/pull/1364))
|
55
|
+
* Print detailed_message on parse command ([#1329](https://github.com/ruby/rbs/pull/1329))
|
56
|
+
* Relax rdoc version requirement ([#1333](https://github.com/ruby/rbs/pull/1333))
|
57
|
+
* Support keyword argument to #detailed_message ([#1328](https://github.com/ruby/rbs/pull/1328))
|
58
|
+
|
59
|
+
#### rbs prototype
|
60
|
+
|
61
|
+
* Avoid to generate anonymous or internal module ([#1421](https://github.com/ruby/rbs/pull/1421))
|
62
|
+
* Fix type name for prototype rbi ([#1386](https://github.com/ruby/rbs/pull/1386))
|
63
|
+
* Support type params for known signatures ([#1408](https://github.com/ruby/rbs/pull/1408))
|
64
|
+
* Super class should be absolute paths. ([#1415](https://github.com/ruby/rbs/pull/1415))
|
65
|
+
* prototype rb: Fix a crash by "include foo" ([#1419](https://github.com/ruby/rbs/pull/1419))
|
66
|
+
* Add `--outline` option to `prototype runtime` to skip generating method definition ([#1404](https://github.com/ruby/rbs/pull/1404))
|
67
|
+
* [rbs prototype] Follow up ivar/cvar feature ([#1361](https://github.com/ruby/rbs/pull/1361))
|
68
|
+
* prototype rb: Extract instance variables and class variables ([#1343](https://github.com/ruby/rbs/pull/1343))
|
69
|
+
|
70
|
+
#### rbs collection
|
71
|
+
|
72
|
+
* Print warning when specified gem not found ([#1367](https://github.com/ruby/rbs/pull/1367))
|
73
|
+
* Generate gem specific sources in lockfile ([#1402](https://github.com/ruby/rbs/pull/1402))
|
74
|
+
* Spec may be missing when `rbs_collection.yaml` declares dependency ([#1378](https://github.com/ruby/rbs/pull/1378))
|
75
|
+
|
76
|
+
### Miscellaneous
|
77
|
+
|
78
|
+
* Remove ruby-lsp && bundle update --bundler ([#1420](https://github.com/ruby/rbs/pull/1420))
|
79
|
+
* Delete all remaining set-related descriptions. ([#1324](https://github.com/ruby/rbs/pull/1324))
|
80
|
+
* Add customized test runner to accept minitest options ([#1392](https://github.com/ruby/rbs/pull/1392))
|
81
|
+
* Specify `rbs` syntax to code snippets in Markdown files ([#1366](https://github.com/ruby/rbs/pull/1366))
|
82
|
+
* Fix typo in parser.rbs ([#1352](https://github.com/ruby/rbs/pull/1352))
|
83
|
+
* Fix broken CI ([#1353](https://github.com/ruby/rbs/pull/1353))
|
84
|
+
* Handle connection error with Resolv_test.rb ([#1356](https://github.com/ruby/rbs/pull/1356))
|
85
|
+
* Removed Prime signature and tests ([#1355](https://github.com/ruby/rbs/pull/1355))
|
86
|
+
|
5
87
|
## 3.1.3 (2023-07-31)
|
6
88
|
|
7
89
|
### Library changes
|
data/Gemfile
CHANGED
@@ -17,17 +17,11 @@ gem "goodcheck"
|
|
17
17
|
gem "dbm"
|
18
18
|
gem 'digest'
|
19
19
|
gem 'tempfile'
|
20
|
-
gem "prime"
|
21
20
|
gem "rdoc", "~> 6.4.0"
|
22
21
|
|
23
22
|
# Test gems
|
24
23
|
gem "rbs-amber", path: "test/assets/test-gem"
|
25
24
|
|
26
|
-
group :ide, optional: true do
|
27
|
-
gem "ruby-debug-ide"
|
28
|
-
gem "debase", ">= 0.2.5.beta2"
|
29
|
-
end
|
30
|
-
|
31
25
|
group :minitest do
|
32
26
|
gem "minitest"
|
33
27
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rbs (3.
|
4
|
+
rbs (3.2.0)
|
5
5
|
|
6
6
|
PATH
|
7
7
|
remote: test/assets/test-gem
|
@@ -14,13 +14,10 @@ GEM
|
|
14
14
|
addressable (2.8.4)
|
15
15
|
public_suffix (>= 2.0.2, < 6.0)
|
16
16
|
ast (2.4.2)
|
17
|
+
base64 (0.1.1)
|
17
18
|
dbm (1.1.0)
|
18
|
-
debase (0.2.5.beta2)
|
19
|
-
debase-ruby_core_source (>= 0.10.12)
|
20
|
-
debase-ruby_core_source (3.2.1)
|
21
19
|
diff-lcs (1.5.0)
|
22
20
|
digest (3.1.1)
|
23
|
-
forwardable (1.3.2)
|
24
21
|
goodcheck (3.1.0)
|
25
22
|
marcel (>= 1.0, < 2.0)
|
26
23
|
psych (>= 3.1, < 5.0)
|
@@ -29,28 +26,26 @@ GEM
|
|
29
26
|
json (2.6.3)
|
30
27
|
json-schema (4.0.0)
|
31
28
|
addressable (>= 2.8)
|
29
|
+
language_server-protocol (3.17.0.3)
|
32
30
|
marcel (1.0.2)
|
33
|
-
minitest (5.
|
31
|
+
minitest (5.19.0)
|
34
32
|
parallel (1.23.0)
|
35
33
|
parser (3.2.2.3)
|
36
34
|
ast (~> 2.4.1)
|
37
35
|
racc
|
38
36
|
power_assert (2.0.3)
|
39
|
-
prime (0.1.2)
|
40
|
-
forwardable
|
41
|
-
singleton
|
42
37
|
psych (4.0.6)
|
43
38
|
stringio
|
44
39
|
public_suffix (5.0.1)
|
45
40
|
racc (1.7.1)
|
46
41
|
rainbow (3.1.1)
|
47
42
|
rake (13.0.6)
|
48
|
-
rake-compiler (1.2.
|
43
|
+
rake-compiler (1.2.5)
|
49
44
|
rake
|
50
45
|
rdoc (6.4.0)
|
51
46
|
psych (>= 4.0.0)
|
52
47
|
regexp_parser (2.8.1)
|
53
|
-
rexml (3.2.
|
48
|
+
rexml (3.2.6)
|
54
49
|
rspec (3.12.0)
|
55
50
|
rspec-core (~> 3.12.0)
|
56
51
|
rspec-expectations (~> 3.12.0)
|
@@ -64,29 +59,28 @@ GEM
|
|
64
59
|
diff-lcs (>= 1.2.0, < 2.0)
|
65
60
|
rspec-support (~> 3.12.0)
|
66
61
|
rspec-support (3.12.0)
|
67
|
-
rubocop (1.
|
62
|
+
rubocop (1.56.0)
|
63
|
+
base64 (~> 0.1.1)
|
68
64
|
json (~> 2.3)
|
65
|
+
language_server-protocol (>= 3.17.0)
|
69
66
|
parallel (~> 1.10)
|
70
67
|
parser (>= 3.2.2.3)
|
71
68
|
rainbow (>= 2.2.2, < 4.0)
|
72
69
|
regexp_parser (>= 1.8, < 3.0)
|
73
70
|
rexml (>= 3.2.5, < 4.0)
|
74
|
-
rubocop-ast (>= 1.28.
|
71
|
+
rubocop-ast (>= 1.28.1, < 2.0)
|
75
72
|
ruby-progressbar (~> 1.7)
|
76
73
|
unicode-display_width (>= 2.4.0, < 3.0)
|
77
74
|
rubocop-ast (1.29.0)
|
78
75
|
parser (>= 3.2.1.0)
|
79
76
|
rubocop-rubycw (0.1.6)
|
80
77
|
rubocop (~> 1.0)
|
81
|
-
ruby-debug-ide (0.7.3)
|
82
|
-
rake (>= 0.8.1)
|
83
78
|
ruby-progressbar (1.13.0)
|
84
|
-
singleton (0.1.1)
|
85
79
|
stackprof (0.2.25)
|
86
80
|
stringio (3.0.7)
|
87
81
|
strong_json (2.1.2)
|
88
82
|
tempfile (0.1.3)
|
89
|
-
test-unit (3.
|
83
|
+
test-unit (3.6.1)
|
90
84
|
power_assert
|
91
85
|
unicode-display_width (2.4.2)
|
92
86
|
|
@@ -96,13 +90,11 @@ PLATFORMS
|
|
96
90
|
|
97
91
|
DEPENDENCIES
|
98
92
|
dbm
|
99
|
-
debase (>= 0.2.5.beta2)
|
100
93
|
digest
|
101
94
|
goodcheck
|
102
95
|
json
|
103
96
|
json-schema
|
104
97
|
minitest
|
105
|
-
prime
|
106
98
|
rake
|
107
99
|
rake-compiler
|
108
100
|
rbs!
|
@@ -111,10 +103,9 @@ DEPENDENCIES
|
|
111
103
|
rspec
|
112
104
|
rubocop
|
113
105
|
rubocop-rubycw
|
114
|
-
ruby-debug-ide
|
115
106
|
stackprof
|
116
107
|
tempfile
|
117
108
|
test-unit
|
118
109
|
|
119
110
|
BUNDLED WITH
|
120
|
-
2.4.
|
111
|
+
2.4.18
|
data/README.md
CHANGED
data/Rakefile
CHANGED
@@ -82,7 +82,7 @@ FileList["test/stdlib/**/*_test.rb"].each do |test|
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
-
task :stdlib_test do
|
85
|
+
task :stdlib_test => :compile do
|
86
86
|
test_files = FileList["test/stdlib/**/*_test.rb"].reject do |path|
|
87
87
|
path =~ %r{Ractor}
|
88
88
|
end
|
@@ -310,3 +310,47 @@ NOTES
|
|
310
310
|
end
|
311
311
|
end
|
312
312
|
end
|
313
|
+
|
314
|
+
|
315
|
+
desc "Generate changelog template from GH pull requests"
|
316
|
+
task :changelog do
|
317
|
+
major, minor, patch, _pre = RBS::VERSION.split(".", 4)
|
318
|
+
major = major.to_i
|
319
|
+
minor = minor.to_i
|
320
|
+
patch = patch.to_i
|
321
|
+
|
322
|
+
if patch == 0
|
323
|
+
milestone = "RBS #{major}.#{minor}"
|
324
|
+
else
|
325
|
+
milestone = "RBS #{major}.#{minor}.x"
|
326
|
+
end
|
327
|
+
|
328
|
+
puts "🔍 Finding pull requests that is associated to milestone `#{milestone}`..."
|
329
|
+
|
330
|
+
command = [
|
331
|
+
"gh",
|
332
|
+
"pr",
|
333
|
+
"list",
|
334
|
+
"--limit=10000",
|
335
|
+
"--json",
|
336
|
+
"url,title,number",
|
337
|
+
"--search" ,
|
338
|
+
"milestone:\"#{milestone}\" is:merged sort:updated-desc -label:Released"
|
339
|
+
]
|
340
|
+
|
341
|
+
require "open3"
|
342
|
+
output, status = Open3.capture2(*command)
|
343
|
+
raise status.inspect unless status.success?
|
344
|
+
|
345
|
+
require "json"
|
346
|
+
json = JSON.parse(output, symbolize_names: true)
|
347
|
+
|
348
|
+
unless json.empty?
|
349
|
+
puts
|
350
|
+
json.each do |line|
|
351
|
+
puts "* #{line[:title]} ([##{line[:number]}](#{line[:url]}))"
|
352
|
+
end
|
353
|
+
else
|
354
|
+
puts " (🤑 There is no *unreleased* pull request associated to the milestone.)"
|
355
|
+
end
|
356
|
+
end
|
data/Steepfile
CHANGED
@@ -9,7 +9,7 @@ target :lib do
|
|
9
9
|
"lib/rbs/test.rb"
|
10
10
|
)
|
11
11
|
|
12
|
-
library "
|
12
|
+
library "pathname", "json", "logger", "monitor", "tsort", "uri", 'dbm', 'pstore', 'singleton', 'shellwords', 'fileutils', 'find', 'digest', 'abbrev'
|
13
13
|
signature 'stdlib/yaml/0'
|
14
14
|
signature "stdlib/strscan/0/"
|
15
15
|
signature "stdlib/optparse/0/"
|
@@ -31,7 +31,7 @@ end
|
|
31
31
|
# check "app/models/**/*.rb" # Glob
|
32
32
|
# # ignore "lib/templates/*.rb"
|
33
33
|
#
|
34
|
-
# # library "pathname", "
|
34
|
+
# # library "pathname", "uri" # Standard libraries
|
35
35
|
# # library "strong_json" # Gems
|
36
36
|
# end
|
37
37
|
|
@@ -40,6 +40,6 @@ end
|
|
40
40
|
#
|
41
41
|
# check "spec"
|
42
42
|
#
|
43
|
-
# # library "pathname", "
|
43
|
+
# # library "pathname", "uri" # Standard libraries
|
44
44
|
# # library "rspec"
|
45
45
|
# end
|
data/core/array.rbs
CHANGED
@@ -3920,14 +3920,6 @@ class Array[unchecked out Elem] < Object
|
|
3920
3920
|
def initialize_copy: (self other_ary) -> void
|
3921
3921
|
end
|
3922
3922
|
|
3923
|
-
interface _ToA[T]
|
3924
|
-
def to_a: () -> Array[T]
|
3925
|
-
end
|
3926
|
-
|
3927
|
-
interface _ToAry[T]
|
3928
|
-
def to_ary: () -> ::Array[T]
|
3929
|
-
end
|
3930
|
-
|
3931
3923
|
interface _Rand
|
3932
3924
|
def rand: (::Integer max) -> ::Integer
|
3933
3925
|
end
|
data/core/binding.rbs
CHANGED
@@ -30,10 +30,10 @@
|
|
30
30
|
# Binding objects have no class-specific methods.
|
31
31
|
#
|
32
32
|
class Binding
|
33
|
-
public
|
34
|
-
|
35
33
|
def clone: () -> self
|
36
34
|
|
35
|
+
def dup: () -> self
|
36
|
+
|
37
37
|
# <!--
|
38
38
|
# rdoc-file=proc.c
|
39
39
|
# - binding.eval(string [, filename [,lineno]]) -> obj
|
@@ -48,69 +48,7 @@ class Binding
|
|
48
48
|
# b = get_binding("hello")
|
49
49
|
# b.eval("param") #=> "hello"
|
50
50
|
#
|
51
|
-
def eval: (
|
52
|
-
|
53
|
-
# <!--
|
54
|
-
# rdoc-file=lib/irb.rb
|
55
|
-
# - irb(show_code: true)
|
56
|
-
# -->
|
57
|
-
# Opens an IRB session where `binding.irb` is called which allows for
|
58
|
-
# interactive debugging. You can call any methods or variables available in the
|
59
|
-
# current scope, and mutate state if you need to.
|
60
|
-
#
|
61
|
-
# Given a Ruby file called `potato.rb` containing the following code:
|
62
|
-
#
|
63
|
-
# class Potato
|
64
|
-
# def initialize
|
65
|
-
# @cooked = false
|
66
|
-
# binding.irb
|
67
|
-
# puts "Cooked potato: #{@cooked}"
|
68
|
-
# end
|
69
|
-
# end
|
70
|
-
#
|
71
|
-
# Potato.new
|
72
|
-
#
|
73
|
-
# Running `ruby potato.rb` will open an IRB session where `binding.irb` is
|
74
|
-
# called, and you will see the following:
|
75
|
-
#
|
76
|
-
# $ ruby potato.rb
|
77
|
-
#
|
78
|
-
# From: potato.rb @ line 4 :
|
79
|
-
#
|
80
|
-
# 1: class Potato
|
81
|
-
# 2: def initialize
|
82
|
-
# 3: @cooked = false
|
83
|
-
# => 4: binding.irb
|
84
|
-
# 5: puts "Cooked potato: #{@cooked}"
|
85
|
-
# 6: end
|
86
|
-
# 7: end
|
87
|
-
# 8:
|
88
|
-
# 9: Potato.new
|
89
|
-
#
|
90
|
-
# irb(#<Potato:0x00007feea1916670>):001:0>
|
91
|
-
#
|
92
|
-
# You can type any valid Ruby code and it will be evaluated in the current
|
93
|
-
# context. This allows you to debug without having to run your code repeatedly:
|
94
|
-
#
|
95
|
-
# irb(#<Potato:0x00007feea1916670>):001:0> @cooked
|
96
|
-
# => false
|
97
|
-
# irb(#<Potato:0x00007feea1916670>):002:0> self.class
|
98
|
-
# => Potato
|
99
|
-
# irb(#<Potato:0x00007feea1916670>):003:0> caller.first
|
100
|
-
# => ".../2.5.1/lib/ruby/2.5.0/irb/workspace.rb:85:in `eval'"
|
101
|
-
# irb(#<Potato:0x00007feea1916670>):004:0> @cooked = true
|
102
|
-
# => true
|
103
|
-
#
|
104
|
-
# You can exit the IRB session with the `exit` command. Note that exiting will
|
105
|
-
# resume execution where `binding.irb` had paused it, as you can see from the
|
106
|
-
# output printed to standard output in this example:
|
107
|
-
#
|
108
|
-
# irb(#<Potato:0x00007feea1916670>):005:0> exit
|
109
|
-
# Cooked potato: true
|
110
|
-
#
|
111
|
-
# See IRB@IRB+Usage for more information.
|
112
|
-
#
|
113
|
-
def irb: () -> void
|
51
|
+
def eval: (string src, ?string filename, ?int lineno) -> untyped
|
114
52
|
|
115
53
|
# <!--
|
116
54
|
# rdoc-file=proc.c
|
@@ -128,7 +66,7 @@ class Binding
|
|
128
66
|
#
|
129
67
|
# binding.eval("defined?(#{symbol}) == 'local-variable'")
|
130
68
|
#
|
131
|
-
def local_variable_defined?: (
|
69
|
+
def local_variable_defined?: (Symbol | string varname) -> bool
|
132
70
|
|
133
71
|
# <!--
|
134
72
|
# rdoc-file=proc.c
|
@@ -146,7 +84,7 @@ class Binding
|
|
146
84
|
#
|
147
85
|
# binding.eval("#{symbol}")
|
148
86
|
#
|
149
|
-
def local_variable_get: (
|
87
|
+
def local_variable_get: (Symbol | string varname) -> untyped
|
150
88
|
|
151
89
|
# <!--
|
152
90
|
# rdoc-file=proc.c
|
@@ -173,7 +111,7 @@ class Binding
|
|
173
111
|
#
|
174
112
|
# if `obj` can be dumped in Ruby code.
|
175
113
|
#
|
176
|
-
def local_variable_set: [U] (
|
114
|
+
def local_variable_set: [U] (Symbol | string varname, U obj) -> U
|
177
115
|
|
178
116
|
# <!--
|
179
117
|
# rdoc-file=proc.c
|
@@ -208,5 +146,5 @@ class Binding
|
|
208
146
|
# -->
|
209
147
|
# Returns the Ruby source filename and line number of the binding object.
|
210
148
|
#
|
211
|
-
def source_location: () -> [
|
149
|
+
def source_location: () -> [String, Integer]
|
212
150
|
end
|
data/core/builtin.rbs
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
interface _ToC
|
2
|
+
def to_c: () -> Complex
|
3
|
+
end
|
4
|
+
|
5
|
+
interface _ToR
|
6
|
+
def to_r: () -> Rational
|
7
|
+
end
|
8
|
+
|
9
|
+
interface _ToF
|
10
|
+
def to_f: () -> Float
|
11
|
+
end
|
12
|
+
|
1
13
|
interface _ToI
|
2
14
|
def to_i: () -> Integer
|
3
15
|
end
|
@@ -6,26 +18,34 @@ interface _ToInt
|
|
6
18
|
def to_int: () -> Integer
|
7
19
|
end
|
8
20
|
|
9
|
-
interface _ToR
|
10
|
-
def to_r: () -> Rational
|
11
|
-
end
|
12
|
-
|
13
21
|
interface _ToS
|
14
22
|
def to_s: () -> String
|
15
23
|
end
|
16
24
|
|
17
|
-
interface _ToF
|
18
|
-
def to_f: () -> Float
|
19
|
-
end
|
20
|
-
|
21
25
|
interface _ToStr
|
22
26
|
def to_str: () -> String
|
23
27
|
end
|
24
28
|
|
29
|
+
interface _ToSym
|
30
|
+
def to_sym: () -> Symbol
|
31
|
+
end
|
32
|
+
|
33
|
+
interface _ToH[K, V]
|
34
|
+
def to_h: () -> Hash[K, V]
|
35
|
+
end
|
36
|
+
|
25
37
|
interface _ToHash[K, V]
|
26
38
|
def to_hash: () -> Hash[K, V]
|
27
39
|
end
|
28
40
|
|
41
|
+
interface _ToA[T]
|
42
|
+
def to_a: () -> Array[T]
|
43
|
+
end
|
44
|
+
|
45
|
+
interface _ToAry[T]
|
46
|
+
def to_ary: () -> Array[T]
|
47
|
+
end
|
48
|
+
|
29
49
|
interface _ToProc
|
30
50
|
def to_proc: () -> Proc
|
31
51
|
end
|
@@ -34,6 +54,10 @@ interface _ToPath
|
|
34
54
|
def to_path: () -> String
|
35
55
|
end
|
36
56
|
|
57
|
+
interface _Inspect
|
58
|
+
def inspect: () -> String
|
59
|
+
end
|
60
|
+
|
37
61
|
interface _Each[out A]
|
38
62
|
def each: () { (A) -> void } -> void
|
39
63
|
end
|
@@ -75,6 +99,7 @@ type real = Integer | Float | Rational
|
|
75
99
|
|
76
100
|
type string = String | _ToStr
|
77
101
|
type encoding = Encoding | string
|
102
|
+
type path = string | _ToPath
|
78
103
|
|
79
104
|
type io = IO | _ToIO
|
80
105
|
|
data/core/constants.rbs
CHANGED
@@ -15,9 +15,19 @@
|
|
15
15
|
|
16
16
|
::CROSS_COMPILING: NilClass
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
# <!-- rdoc-file=ruby.c -->
|
19
|
+
# DATA is a File that contains the data section of the executed file. To create
|
20
|
+
# a data section use `__END__`:
|
21
|
+
#
|
22
|
+
# $ cat t.rb
|
23
|
+
# puts DATA.gets
|
24
|
+
# __END__
|
25
|
+
# hello world!
|
26
|
+
#
|
27
|
+
# $ ruby t.rb
|
28
|
+
# hello world!
|
29
|
+
#
|
30
|
+
::DATA: File
|
21
31
|
|
22
32
|
# <!-- rdoc-file=version.c -->
|
23
33
|
# The copyright string for ruby
|
@@ -84,5 +94,3 @@
|
|
84
94
|
# The Binding of the top level scope
|
85
95
|
#
|
86
96
|
::TOPLEVEL_BINDING: Binding
|
87
|
-
|
88
|
-
::TRUE: TrueClass
|