steep 0.15.0 → 0.17.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/.gitmodules +0 -3
- data/CHANGELOG.md +25 -0
- data/Rakefile +0 -13
- data/bin/setup +0 -2
- data/bin/smoke_runner.rb +0 -1
- data/exe/steep +0 -1
- data/lib/steep.rb +12 -1
- data/lib/steep/cli.rb +16 -1
- data/lib/steep/drivers/annotations.rb +1 -1
- data/lib/steep/drivers/check.rb +1 -12
- data/lib/steep/drivers/langserver.rb +13 -462
- data/lib/steep/drivers/utils/driver_helper.rb +1 -1
- data/lib/steep/drivers/watch.rb +97 -85
- data/lib/steep/drivers/worker.rb +51 -0
- data/lib/steep/project.rb +9 -5
- data/lib/steep/project/completion_provider.rb +4 -2
- data/lib/steep/project/file.rb +2 -1
- data/lib/steep/project/hover_content.rb +6 -3
- data/lib/steep/project/options.rb +15 -0
- data/lib/steep/project/target.rb +30 -20
- data/lib/steep/server/base_worker.rb +56 -0
- data/lib/steep/server/code_worker.rb +151 -0
- data/lib/steep/server/interaction_worker.rb +281 -0
- data/lib/steep/server/master.rb +196 -0
- data/lib/steep/server/signature_worker.rb +148 -0
- data/lib/steep/server/utils.rb +36 -0
- data/lib/steep/server/worker_process.rb +62 -0
- data/lib/steep/signature/validator.rb +5 -5
- data/lib/steep/type_construction.rb +13 -19
- data/lib/steep/type_inference/constant_env.rb +2 -10
- data/lib/steep/type_inference/context.rb +1 -0
- data/lib/steep/version.rb +1 -1
- data/steep.gemspec +7 -8
- metadata +22 -142
- data/exe/rbs +0 -3
- data/vendor/ruby-signature/.github/workflows/ruby.yml +0 -27
- data/vendor/ruby-signature/.gitignore +0 -12
- data/vendor/ruby-signature/.rubocop.yml +0 -15
- data/vendor/ruby-signature/BSDL +0 -22
- data/vendor/ruby-signature/COPYING +0 -56
- data/vendor/ruby-signature/Gemfile +0 -6
- data/vendor/ruby-signature/README.md +0 -93
- data/vendor/ruby-signature/Rakefile +0 -67
- data/vendor/ruby-signature/bin/annotate-with-rdoc +0 -157
- data/vendor/ruby-signature/bin/console +0 -14
- data/vendor/ruby-signature/bin/query-rdoc +0 -103
- data/vendor/ruby-signature/bin/setup +0 -10
- data/vendor/ruby-signature/bin/sort +0 -89
- data/vendor/ruby-signature/bin/test_runner.rb +0 -16
- data/vendor/ruby-signature/docs/CONTRIBUTING.md +0 -97
- data/vendor/ruby-signature/docs/sigs.md +0 -148
- data/vendor/ruby-signature/docs/stdlib.md +0 -152
- data/vendor/ruby-signature/docs/syntax.md +0 -528
- data/vendor/ruby-signature/exe/rbs +0 -7
- data/vendor/ruby-signature/lib/rbs.rb +0 -64
- data/vendor/ruby-signature/lib/rbs/ast/annotation.rb +0 -27
- data/vendor/ruby-signature/lib/rbs/ast/comment.rb +0 -27
- data/vendor/ruby-signature/lib/rbs/ast/declarations.rb +0 -395
- data/vendor/ruby-signature/lib/rbs/ast/members.rb +0 -362
- data/vendor/ruby-signature/lib/rbs/buffer.rb +0 -50
- data/vendor/ruby-signature/lib/rbs/builtin_names.rb +0 -55
- data/vendor/ruby-signature/lib/rbs/cli.rb +0 -558
- data/vendor/ruby-signature/lib/rbs/constant.rb +0 -26
- data/vendor/ruby-signature/lib/rbs/constant_table.rb +0 -150
- data/vendor/ruby-signature/lib/rbs/definition.rb +0 -170
- data/vendor/ruby-signature/lib/rbs/definition_builder.rb +0 -919
- data/vendor/ruby-signature/lib/rbs/environment.rb +0 -281
- data/vendor/ruby-signature/lib/rbs/environment_loader.rb +0 -136
- data/vendor/ruby-signature/lib/rbs/environment_walker.rb +0 -124
- data/vendor/ruby-signature/lib/rbs/errors.rb +0 -187
- data/vendor/ruby-signature/lib/rbs/location.rb +0 -102
- data/vendor/ruby-signature/lib/rbs/method_type.rb +0 -123
- data/vendor/ruby-signature/lib/rbs/namespace.rb +0 -91
- data/vendor/ruby-signature/lib/rbs/parser.y +0 -1344
- data/vendor/ruby-signature/lib/rbs/prototype/rb.rb +0 -553
- data/vendor/ruby-signature/lib/rbs/prototype/rbi.rb +0 -587
- data/vendor/ruby-signature/lib/rbs/prototype/runtime.rb +0 -381
- data/vendor/ruby-signature/lib/rbs/substitution.rb +0 -46
- data/vendor/ruby-signature/lib/rbs/test.rb +0 -26
- data/vendor/ruby-signature/lib/rbs/test/errors.rb +0 -61
- data/vendor/ruby-signature/lib/rbs/test/hook.rb +0 -294
- data/vendor/ruby-signature/lib/rbs/test/setup.rb +0 -58
- data/vendor/ruby-signature/lib/rbs/test/spy.rb +0 -325
- data/vendor/ruby-signature/lib/rbs/test/test_helper.rb +0 -183
- data/vendor/ruby-signature/lib/rbs/test/type_check.rb +0 -254
- data/vendor/ruby-signature/lib/rbs/type_name.rb +0 -70
- data/vendor/ruby-signature/lib/rbs/types.rb +0 -936
- data/vendor/ruby-signature/lib/rbs/variance_calculator.rb +0 -138
- data/vendor/ruby-signature/lib/rbs/vendorer.rb +0 -47
- data/vendor/ruby-signature/lib/rbs/version.rb +0 -3
- data/vendor/ruby-signature/lib/rbs/writer.rb +0 -269
- data/vendor/ruby-signature/lib/ruby/signature.rb +0 -7
- data/vendor/ruby-signature/rbs.gemspec +0 -45
- data/vendor/ruby-signature/stdlib/abbrev/abbrev.rbs +0 -60
- data/vendor/ruby-signature/stdlib/base64/base64.rbs +0 -71
- data/vendor/ruby-signature/stdlib/benchmark/benchmark.rbs +0 -372
- data/vendor/ruby-signature/stdlib/builtin/array.rbs +0 -1997
- data/vendor/ruby-signature/stdlib/builtin/basic_object.rbs +0 -280
- data/vendor/ruby-signature/stdlib/builtin/binding.rbs +0 -177
- data/vendor/ruby-signature/stdlib/builtin/builtin.rbs +0 -44
- data/vendor/ruby-signature/stdlib/builtin/class.rbs +0 -145
- data/vendor/ruby-signature/stdlib/builtin/comparable.rbs +0 -116
- data/vendor/ruby-signature/stdlib/builtin/complex.rbs +0 -400
- data/vendor/ruby-signature/stdlib/builtin/constants.rbs +0 -37
- data/vendor/ruby-signature/stdlib/builtin/data.rbs +0 -5
- data/vendor/ruby-signature/stdlib/builtin/deprecated.rbs +0 -2
- data/vendor/ruby-signature/stdlib/builtin/dir.rbs +0 -413
- data/vendor/ruby-signature/stdlib/builtin/encoding.rbs +0 -607
- data/vendor/ruby-signature/stdlib/builtin/enumerable.rbs +0 -404
- data/vendor/ruby-signature/stdlib/builtin/enumerator.rbs +0 -260
- data/vendor/ruby-signature/stdlib/builtin/errno.rbs +0 -781
- data/vendor/ruby-signature/stdlib/builtin/errors.rbs +0 -582
- data/vendor/ruby-signature/stdlib/builtin/exception.rbs +0 -194
- data/vendor/ruby-signature/stdlib/builtin/false_class.rbs +0 -40
- data/vendor/ruby-signature/stdlib/builtin/fiber.rbs +0 -68
- data/vendor/ruby-signature/stdlib/builtin/fiber_error.rbs +0 -12
- data/vendor/ruby-signature/stdlib/builtin/file.rbs +0 -1076
- data/vendor/ruby-signature/stdlib/builtin/file_test.rbs +0 -59
- data/vendor/ruby-signature/stdlib/builtin/float.rbs +0 -696
- data/vendor/ruby-signature/stdlib/builtin/gc.rbs +0 -243
- data/vendor/ruby-signature/stdlib/builtin/hash.rbs +0 -1029
- data/vendor/ruby-signature/stdlib/builtin/integer.rbs +0 -707
- data/vendor/ruby-signature/stdlib/builtin/io.rbs +0 -683
- data/vendor/ruby-signature/stdlib/builtin/kernel.rbs +0 -576
- data/vendor/ruby-signature/stdlib/builtin/marshal.rbs +0 -161
- data/vendor/ruby-signature/stdlib/builtin/match_data.rbs +0 -271
- data/vendor/ruby-signature/stdlib/builtin/math.rbs +0 -369
- data/vendor/ruby-signature/stdlib/builtin/method.rbs +0 -185
- data/vendor/ruby-signature/stdlib/builtin/module.rbs +0 -1104
- data/vendor/ruby-signature/stdlib/builtin/nil_class.rbs +0 -82
- data/vendor/ruby-signature/stdlib/builtin/numeric.rbs +0 -409
- data/vendor/ruby-signature/stdlib/builtin/object.rbs +0 -824
- data/vendor/ruby-signature/stdlib/builtin/proc.rbs +0 -429
- data/vendor/ruby-signature/stdlib/builtin/process.rbs +0 -1227
- data/vendor/ruby-signature/stdlib/builtin/random.rbs +0 -267
- data/vendor/ruby-signature/stdlib/builtin/range.rbs +0 -226
- data/vendor/ruby-signature/stdlib/builtin/rational.rbs +0 -424
- data/vendor/ruby-signature/stdlib/builtin/rb_config.rbs +0 -57
- data/vendor/ruby-signature/stdlib/builtin/regexp.rbs +0 -1083
- data/vendor/ruby-signature/stdlib/builtin/ruby_vm.rbs +0 -14
- data/vendor/ruby-signature/stdlib/builtin/signal.rbs +0 -55
- data/vendor/ruby-signature/stdlib/builtin/string.rbs +0 -1901
- data/vendor/ruby-signature/stdlib/builtin/string_io.rbs +0 -284
- data/vendor/ruby-signature/stdlib/builtin/struct.rbs +0 -40
- data/vendor/ruby-signature/stdlib/builtin/symbol.rbs +0 -228
- data/vendor/ruby-signature/stdlib/builtin/thread.rbs +0 -1108
- data/vendor/ruby-signature/stdlib/builtin/thread_group.rbs +0 -23
- data/vendor/ruby-signature/stdlib/builtin/time.rbs +0 -1047
- data/vendor/ruby-signature/stdlib/builtin/trace_point.rbs +0 -290
- data/vendor/ruby-signature/stdlib/builtin/true_class.rbs +0 -46
- data/vendor/ruby-signature/stdlib/builtin/unbound_method.rbs +0 -153
- data/vendor/ruby-signature/stdlib/builtin/warning.rbs +0 -17
- data/vendor/ruby-signature/stdlib/coverage/coverage.rbs +0 -62
- data/vendor/ruby-signature/stdlib/csv/csv.rbs +0 -773
- data/vendor/ruby-signature/stdlib/erb/erb.rbs +0 -392
- data/vendor/ruby-signature/stdlib/find/find.rbs +0 -40
- data/vendor/ruby-signature/stdlib/ipaddr/ipaddr.rbs +0 -247
- data/vendor/ruby-signature/stdlib/pathname/pathname.rbs +0 -1093
- data/vendor/ruby-signature/stdlib/prime/integer-extension.rbs +0 -23
- data/vendor/ruby-signature/stdlib/prime/prime.rbs +0 -188
- data/vendor/ruby-signature/stdlib/securerandom/securerandom.rbs +0 -9
- data/vendor/ruby-signature/stdlib/set/set.rbs +0 -301
- data/vendor/ruby-signature/stdlib/tmpdir/tmpdir.rbs +0 -53
@@ -1,37 +0,0 @@
|
|
1
|
-
::ARGF: Object
|
2
|
-
|
3
|
-
::ARGV: Array[String]
|
4
|
-
|
5
|
-
::CROSS_COMPILING: NilClass
|
6
|
-
|
7
|
-
::FALSE: FalseClass
|
8
|
-
|
9
|
-
::NIL: NilClass
|
10
|
-
|
11
|
-
::RUBY_COPYRIGHT: String
|
12
|
-
|
13
|
-
::RUBY_DESCRIPTION: String
|
14
|
-
|
15
|
-
::RUBY_ENGINE: String
|
16
|
-
|
17
|
-
::RUBY_ENGINE_VERSION: String
|
18
|
-
|
19
|
-
::RUBY_PATCHLEVEL: Integer
|
20
|
-
|
21
|
-
::RUBY_PLATFORM: String
|
22
|
-
|
23
|
-
::RUBY_RELEASE_DATE: String
|
24
|
-
|
25
|
-
::RUBY_REVISION: Integer
|
26
|
-
|
27
|
-
::RUBY_VERSION: String
|
28
|
-
|
29
|
-
::STDERR: IO
|
30
|
-
|
31
|
-
::STDIN: IO
|
32
|
-
|
33
|
-
::STDOUT: IO
|
34
|
-
|
35
|
-
::TOPLEVEL_BINDING: Binding
|
36
|
-
|
37
|
-
::TRUE: TrueClass
|
@@ -1,413 +0,0 @@
|
|
1
|
-
# Objects of class Dir are directory streams representing directories in the
|
2
|
-
# underlying file system. They provide a variety of ways to list directories and
|
3
|
-
# their contents. See also File.
|
4
|
-
#
|
5
|
-
# The directory used in these examples contains the two regular files
|
6
|
-
# (`config.h` and `main.rb`), the parent directory (`..`), and the directory
|
7
|
-
# itself (`.`).
|
8
|
-
#
|
9
|
-
class Dir
|
10
|
-
include Enumerable[String, Dir]
|
11
|
-
|
12
|
-
# Returns a new directory object for the named directory.
|
13
|
-
#
|
14
|
-
# The optional *encoding* keyword argument specifies the encoding of the
|
15
|
-
# directory. If not specified, the filesystem encoding is used.
|
16
|
-
#
|
17
|
-
def initialize: (string, ?encoding: Encoding | string | nil) -> void
|
18
|
-
|
19
|
-
# Equivalent to calling `Dir.glob([string,...], 0)`.
|
20
|
-
#
|
21
|
-
def self.[]: (*string patterns, ?base: string) ?{ (String path) -> void } -> Array[String]
|
22
|
-
|
23
|
-
# Changes the current working directory of the process to the given string. When
|
24
|
-
# called without an argument, changes the directory to the value of the
|
25
|
-
# environment variable `HOME`, or `LOGDIR`. SystemCallError (probably
|
26
|
-
# Errno::ENOENT) if the target directory does not exist.
|
27
|
-
#
|
28
|
-
# If a block is given, it is passed the name of the new current directory, and
|
29
|
-
# the block is executed with that as the current directory. The original working
|
30
|
-
# directory is restored when the block exits. The return value of `chdir` is the
|
31
|
-
# value of the block. `chdir` blocks can be nested, but in a multi-threaded
|
32
|
-
# program an error will be raised if a thread attempts to open a `chdir` block
|
33
|
-
# while another thread has one open.
|
34
|
-
#
|
35
|
-
# Dir.chdir("/var/spool/mail")
|
36
|
-
# puts Dir.pwd
|
37
|
-
# Dir.chdir("/tmp") do
|
38
|
-
# puts Dir.pwd
|
39
|
-
# Dir.chdir("/usr") do
|
40
|
-
# puts Dir.pwd
|
41
|
-
# end
|
42
|
-
# puts Dir.pwd
|
43
|
-
# end
|
44
|
-
# puts Dir.pwd
|
45
|
-
#
|
46
|
-
# *produces:*
|
47
|
-
#
|
48
|
-
# /var/spool/mail
|
49
|
-
# /tmp
|
50
|
-
# /usr
|
51
|
-
# /tmp
|
52
|
-
# /var/spool/mail
|
53
|
-
#
|
54
|
-
def self.chdir: (?string) -> void
|
55
|
-
| [U] (?string) { (String) -> U } -> U
|
56
|
-
|
57
|
-
# Returns an array containing all of the filenames except for "." and ".." in
|
58
|
-
# the given directory. Will raise a SystemCallError if the named directory
|
59
|
-
# doesn't exist.
|
60
|
-
#
|
61
|
-
# The optional *encoding* keyword argument specifies the encoding of the
|
62
|
-
# directory. If not specified, the filesystem encoding is used.
|
63
|
-
#
|
64
|
-
# Dir.children("testdir") #=> ["config.h", "main.rb"]
|
65
|
-
#
|
66
|
-
def self.children: (string dirname, ?encoding: string | Encoding | nil enc) -> Array[String]
|
67
|
-
|
68
|
-
# Changes this process's idea of the file system root. Only a privileged process
|
69
|
-
# may make this call. Not available on all platforms. On Unix systems, see
|
70
|
-
# `chroot(2)` for more information.
|
71
|
-
#
|
72
|
-
def self.chroot: (string) -> void
|
73
|
-
|
74
|
-
# Deletes the named directory. Raises a subclass of SystemCallError if the
|
75
|
-
# directory isn't empty.
|
76
|
-
#
|
77
|
-
def self.delete: (string) -> void
|
78
|
-
|
79
|
-
# Calls the block once for each entry except for "." and ".." in the named
|
80
|
-
# directory, passing the filename of each entry as a parameter to the block.
|
81
|
-
#
|
82
|
-
# If no block is given, an enumerator is returned instead.
|
83
|
-
#
|
84
|
-
# Dir.each_child("testdir") {|x| puts "Got #{x}" }
|
85
|
-
#
|
86
|
-
# *produces:*
|
87
|
-
#
|
88
|
-
# Got config.h
|
89
|
-
# Got main.rb
|
90
|
-
#
|
91
|
-
def self.each_child: (string dirname, ?encoding: string | Encoding | nil enc) -> Enumerator[String, void]
|
92
|
-
| (string dirname, ?encoding: string | Encoding | nil enc) { (String filename) -> void } -> void
|
93
|
-
|
94
|
-
# Returns `true` if the named file is an empty directory, `false` if it is not a
|
95
|
-
# directory or non-empty.
|
96
|
-
#
|
97
|
-
def self.empty?: (string path_name) -> bool
|
98
|
-
|
99
|
-
# Returns an array containing all of the filenames in the given directory. Will
|
100
|
-
# raise a SystemCallError if the named directory doesn't exist.
|
101
|
-
#
|
102
|
-
# The optional *encoding* keyword argument specifies the encoding of the
|
103
|
-
# directory. If not specified, the filesystem encoding is used.
|
104
|
-
#
|
105
|
-
# Dir.entries("testdir") #=> [".", "..", "config.h", "main.rb"]
|
106
|
-
#
|
107
|
-
def self.entries: (string dirname, ?encoding: Encoding | string | nil enc) -> ::Array[String]
|
108
|
-
|
109
|
-
# Returns `true` if the named file is a directory, `false` otherwise.
|
110
|
-
#
|
111
|
-
def self.exist?: (string file) -> bool
|
112
|
-
|
113
|
-
# Deprecated method. Don't use.
|
114
|
-
#
|
115
|
-
def self.exists?: (string file) -> bool
|
116
|
-
|
117
|
-
# Calls the block once for each entry in the named directory, passing the
|
118
|
-
# filename of each entry as a parameter to the block.
|
119
|
-
#
|
120
|
-
# If no block is given, an enumerator is returned instead.
|
121
|
-
#
|
122
|
-
# Dir.foreach("testdir") {|x| puts "Got #{x}" }
|
123
|
-
#
|
124
|
-
# *produces:*
|
125
|
-
#
|
126
|
-
# Got .
|
127
|
-
# Got ..
|
128
|
-
# Got config.h
|
129
|
-
# Got main.rb
|
130
|
-
#
|
131
|
-
alias self.foreach self.each_child
|
132
|
-
|
133
|
-
# Returns the path to the current working directory of this process as a string.
|
134
|
-
#
|
135
|
-
# Dir.chdir("/tmp") #=> 0
|
136
|
-
# Dir.getwd #=> "/tmp"
|
137
|
-
# Dir.pwd #=> "/tmp"
|
138
|
-
#
|
139
|
-
def self.getwd: () -> String
|
140
|
-
|
141
|
-
# Expands `pattern`, which is a pattern string or an Array of pattern strings,
|
142
|
-
# and returns an array containing the matching filenames. If a block is given,
|
143
|
-
# calls the block once for each matching filename, passing the filename as a
|
144
|
-
# parameter to the block.
|
145
|
-
#
|
146
|
-
# The optional `base` keyword argument specifies the base directory for
|
147
|
-
# interpreting relative pathnames instead of the current working directory. As
|
148
|
-
# the results are not prefixed with the base directory name in this case, you
|
149
|
-
# will need to prepend the base directory name if you want real paths.
|
150
|
-
#
|
151
|
-
# Note that the pattern is not a regexp, it's closer to a shell glob. See
|
152
|
-
# File::fnmatch for the meaning of the `flags` parameter. Case sensitivity
|
153
|
-
# depends on your system (File::FNM_CASEFOLD is ignored), as does the order in
|
154
|
-
# which the results are returned.
|
155
|
-
#
|
156
|
-
# `*`
|
157
|
-
# : Matches any file. Can be restricted by other values in the glob.
|
158
|
-
# Equivalent to `/ .* /mx` in regexp.
|
159
|
-
#
|
160
|
-
# `*`
|
161
|
-
# : Matches all files
|
162
|
-
# `c*`
|
163
|
-
# : Matches all files beginning with `c`
|
164
|
-
# `*c`
|
165
|
-
# : Matches all files ending with `c`
|
166
|
-
# `*c*`
|
167
|
-
# : Match all files that have `c` in them (including at the beginning or
|
168
|
-
# end).
|
169
|
-
#
|
170
|
-
#
|
171
|
-
# Note, this will not match Unix-like hidden files (dotfiles). In order to
|
172
|
-
# include those in the match results, you must use the File::FNM_DOTMATCH
|
173
|
-
# flag or something like `"{*,.*}"`.
|
174
|
-
#
|
175
|
-
# `**`
|
176
|
-
# : Matches directories recursively.
|
177
|
-
#
|
178
|
-
# `?`
|
179
|
-
# : Matches any one character. Equivalent to `/.{1}/` in regexp.
|
180
|
-
#
|
181
|
-
# `[set]`
|
182
|
-
# : Matches any one character in `set`. Behaves exactly like character sets
|
183
|
-
# in Regexp, including set negation (`[^a-z]`).
|
184
|
-
#
|
185
|
-
# `{p,q}`
|
186
|
-
# : Matches either literal `p` or literal `q`. Equivalent to pattern
|
187
|
-
# alternation in regexp.
|
188
|
-
#
|
189
|
-
# Matching literals may be more than one character in length. More than two
|
190
|
-
# literals may be specified.
|
191
|
-
#
|
192
|
-
# ` \\ `
|
193
|
-
# : Escapes the next metacharacter.
|
194
|
-
#
|
195
|
-
# Note that this means you cannot use backslash on windows as part of a
|
196
|
-
# glob, i.e. `Dir["c:\\foo*"]` will not work, use `Dir["c:/foo*"]` instead.
|
197
|
-
#
|
198
|
-
#
|
199
|
-
# Examples:
|
200
|
-
#
|
201
|
-
# Dir["config.?"] #=> ["config.h"]
|
202
|
-
# Dir.glob("config.?") #=> ["config.h"]
|
203
|
-
# Dir.glob("*.[a-z][a-z]") #=> ["main.rb"]
|
204
|
-
# Dir.glob("*.[^r]*") #=> ["config.h"]
|
205
|
-
# Dir.glob("*.{rb,h}") #=> ["main.rb", "config.h"]
|
206
|
-
# Dir.glob("*") #=> ["config.h", "main.rb"]
|
207
|
-
# Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "config.h", "main.rb"]
|
208
|
-
# Dir.glob(["*.rb", "*.h"]) #=> ["main.rb", "config.h"]
|
209
|
-
#
|
210
|
-
# rbfiles = File.join("**", "*.rb")
|
211
|
-
# Dir.glob(rbfiles) #=> ["main.rb",
|
212
|
-
# # "lib/song.rb",
|
213
|
-
# # "lib/song/karaoke.rb"]
|
214
|
-
#
|
215
|
-
# Dir.glob(rbfiles, base: "lib") #=> ["song.rb",
|
216
|
-
# # "song/karaoke.rb"]
|
217
|
-
#
|
218
|
-
# libdirs = File.join("**", "lib")
|
219
|
-
# Dir.glob(libdirs) #=> ["lib"]
|
220
|
-
#
|
221
|
-
# librbfiles = File.join("**", "lib", "**", "*.rb")
|
222
|
-
# Dir.glob(librbfiles) #=> ["lib/song.rb",
|
223
|
-
# # "lib/song/karaoke.rb"]
|
224
|
-
#
|
225
|
-
# librbfiles = File.join("**", "lib", "*.rb")
|
226
|
-
# Dir.glob(librbfiles) #=> ["lib/song.rb"]
|
227
|
-
#
|
228
|
-
def self.glob: (string | ::Array[string] pattern, ?Integer flags, ?base: string) -> ::Array[String]
|
229
|
-
| (string | ::Array[string] pattern, ?Integer flags, ?base: string) { (String) -> void } -> void
|
230
|
-
|
231
|
-
# Returns the home directory of the current user or the named user if given.
|
232
|
-
#
|
233
|
-
def self.home: (?string user) -> String
|
234
|
-
|
235
|
-
# Makes a new directory named by *string*, with permissions specified by the
|
236
|
-
# optional parameter *anInteger*. The permissions may be modified by the value
|
237
|
-
# of File::umask, and are ignored on NT. Raises a SystemCallError if the
|
238
|
-
# directory cannot be created. See also the discussion of permissions in the
|
239
|
-
# class documentation for File.
|
240
|
-
#
|
241
|
-
# Dir.mkdir(File.join(Dir.home, ".foo"), 0700) #=> 0
|
242
|
-
#
|
243
|
-
def self.mkdir: (string, ?Integer permissions) -> void
|
244
|
-
|
245
|
-
# The optional *encoding* keyword argument specifies the encoding of the
|
246
|
-
# directory. If not specified, the filesystem encoding is used.
|
247
|
-
#
|
248
|
-
# With no block, `open` is a synonym for Dir::new. If a block is present, it is
|
249
|
-
# passed *aDir* as a parameter. The directory is closed at the end of the block,
|
250
|
-
# and Dir::open returns the value of the block.
|
251
|
-
#
|
252
|
-
def self.open: (string, ?encoding: Encoding | string | nil) -> Dir
|
253
|
-
| [U] (string, ?encoding: Encoding | string | nil) { (Dir) -> U } -> U
|
254
|
-
|
255
|
-
# Returns the path to the current working directory of this process as a string.
|
256
|
-
#
|
257
|
-
# Dir.chdir("/tmp") #=> 0
|
258
|
-
# Dir.getwd #=> "/tmp"
|
259
|
-
# Dir.pwd #=> "/tmp"
|
260
|
-
#
|
261
|
-
def self.pwd: () -> String
|
262
|
-
|
263
|
-
# Deletes the named directory. Raises a subclass of SystemCallError if the
|
264
|
-
# directory isn't empty.
|
265
|
-
#
|
266
|
-
alias self.rmdir self.delete
|
267
|
-
|
268
|
-
# Deletes the named directory. Raises a subclass of SystemCallError if the
|
269
|
-
# directory isn't empty.
|
270
|
-
#
|
271
|
-
alias self.unlink self.delete
|
272
|
-
|
273
|
-
public
|
274
|
-
|
275
|
-
# Returns an array containing all of the filenames except for "." and ".." in
|
276
|
-
# this directory.
|
277
|
-
#
|
278
|
-
# d = Dir.new("testdir")
|
279
|
-
# d.children #=> ["config.h", "main.rb"]
|
280
|
-
#
|
281
|
-
def children: () -> Array[String]
|
282
|
-
|
283
|
-
# Closes the directory stream. Calling this method on closed Dir object is
|
284
|
-
# ignored since Ruby 2.3.
|
285
|
-
#
|
286
|
-
# d = Dir.new("testdir")
|
287
|
-
# d.close #=> nil
|
288
|
-
#
|
289
|
-
def close: () -> void
|
290
|
-
|
291
|
-
# Calls the block once for each entry in this directory, passing the filename of
|
292
|
-
# each entry as a parameter to the block.
|
293
|
-
#
|
294
|
-
# If no block is given, an enumerator is returned instead.
|
295
|
-
#
|
296
|
-
# d = Dir.new("testdir")
|
297
|
-
# d.each {|x| puts "Got #{x}" }
|
298
|
-
#
|
299
|
-
# *produces:*
|
300
|
-
#
|
301
|
-
# Got .
|
302
|
-
# Got ..
|
303
|
-
# Got config.h
|
304
|
-
# Got main.rb
|
305
|
-
#
|
306
|
-
def each: () { (String) -> void } -> self
|
307
|
-
| () -> ::Enumerator[String, self]
|
308
|
-
|
309
|
-
# Calls the block once for each entry except for "." and ".." in this directory,
|
310
|
-
# passing the filename of each entry as a parameter to the block.
|
311
|
-
#
|
312
|
-
# If no block is given, an enumerator is returned instead.
|
313
|
-
#
|
314
|
-
# d = Dir.new("testdir")
|
315
|
-
# d.each_child {|x| puts "Got #{x}" }
|
316
|
-
#
|
317
|
-
# *produces:*
|
318
|
-
#
|
319
|
-
# Got config.h
|
320
|
-
# Got main.rb
|
321
|
-
#
|
322
|
-
def each_child: () { (String) -> void } -> self
|
323
|
-
| () -> ::Enumerator[String, self]
|
324
|
-
|
325
|
-
# Returns the file descriptor used in *dir*.
|
326
|
-
#
|
327
|
-
# d = Dir.new("..")
|
328
|
-
# d.fileno #=> 8
|
329
|
-
#
|
330
|
-
# This method uses dirfd() function defined by POSIX 2008. NotImplementedError
|
331
|
-
# is raised on other platforms, such as Windows, which doesn't provide the
|
332
|
-
# function.
|
333
|
-
#
|
334
|
-
def fileno: () -> Integer
|
335
|
-
|
336
|
-
# Return a string describing this Dir object.
|
337
|
-
#
|
338
|
-
def inspect: () -> String
|
339
|
-
|
340
|
-
# Returns the path parameter passed to *dir*'s constructor.
|
341
|
-
#
|
342
|
-
# d = Dir.new("..")
|
343
|
-
# d.path #=> ".."
|
344
|
-
#
|
345
|
-
def path: () -> String?
|
346
|
-
|
347
|
-
# Returns the current position in *dir*. See also Dir#seek.
|
348
|
-
#
|
349
|
-
# d = Dir.new("testdir")
|
350
|
-
# d.tell #=> 0
|
351
|
-
# d.read #=> "."
|
352
|
-
# d.tell #=> 12
|
353
|
-
#
|
354
|
-
def pos: () -> Integer
|
355
|
-
|
356
|
-
# Synonym for Dir#seek, but returns the position parameter.
|
357
|
-
#
|
358
|
-
# d = Dir.new("testdir") #=> #<Dir:0x401b3c40>
|
359
|
-
# d.read #=> "."
|
360
|
-
# i = d.pos #=> 12
|
361
|
-
# d.read #=> ".."
|
362
|
-
# d.pos = i #=> 12
|
363
|
-
# d.read #=> ".."
|
364
|
-
#
|
365
|
-
def pos=: (Integer pos) -> Integer
|
366
|
-
|
367
|
-
# Reads the next entry from *dir* and returns it as a string. Returns `nil` at
|
368
|
-
# the end of the stream.
|
369
|
-
#
|
370
|
-
# d = Dir.new("testdir")
|
371
|
-
# d.read #=> "."
|
372
|
-
# d.read #=> ".."
|
373
|
-
# d.read #=> "config.h"
|
374
|
-
#
|
375
|
-
def read: () -> String?
|
376
|
-
|
377
|
-
# Repositions *dir* to the first entry.
|
378
|
-
#
|
379
|
-
# d = Dir.new("testdir")
|
380
|
-
# d.read #=> "."
|
381
|
-
# d.rewind #=> #<Dir:0x401b3fb0>
|
382
|
-
# d.read #=> "."
|
383
|
-
#
|
384
|
-
def rewind: () -> self
|
385
|
-
|
386
|
-
# Seeks to a particular location in *dir*. *integer* must be a value returned by
|
387
|
-
# Dir#tell.
|
388
|
-
#
|
389
|
-
# d = Dir.new("testdir") #=> #<Dir:0x401b3c40>
|
390
|
-
# d.read #=> "."
|
391
|
-
# i = d.tell #=> 12
|
392
|
-
# d.read #=> ".."
|
393
|
-
# d.seek(i) #=> #<Dir:0x401b3c40>
|
394
|
-
# d.read #=> ".."
|
395
|
-
#
|
396
|
-
def seek: (Integer) -> self
|
397
|
-
|
398
|
-
# Returns the current position in *dir*. See also Dir#seek.
|
399
|
-
#
|
400
|
-
# d = Dir.new("testdir")
|
401
|
-
# d.tell #=> 0
|
402
|
-
# d.read #=> "."
|
403
|
-
# d.tell #=> 12
|
404
|
-
#
|
405
|
-
def tell: () -> Integer
|
406
|
-
|
407
|
-
# Returns the path parameter passed to *dir*'s constructor.
|
408
|
-
#
|
409
|
-
# d = Dir.new("..")
|
410
|
-
# d.path #=> ".."
|
411
|
-
#
|
412
|
-
alias to_path path
|
413
|
-
end
|