steep 0.16.0 → 0.17.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +0 -3
  3. data/CHANGELOG.md +24 -0
  4. data/Rakefile +0 -13
  5. data/bin/setup +0 -2
  6. data/bin/smoke_runner.rb +0 -1
  7. data/exe/steep +0 -1
  8. data/lib/steep.rb +1 -1
  9. data/lib/steep/drivers/check.rb +1 -12
  10. data/lib/steep/drivers/watch.rb +2 -2
  11. data/lib/steep/project/file.rb +1 -1
  12. data/lib/steep/project/hover_content.rb +1 -1
  13. data/lib/steep/project/options.rb +15 -0
  14. data/lib/steep/server/code_worker.rb +4 -4
  15. data/lib/steep/server/signature_worker.rb +4 -4
  16. data/lib/steep/type_construction.rb +13 -19
  17. data/lib/steep/type_inference/constant_env.rb +2 -10
  18. data/lib/steep/type_inference/context.rb +1 -0
  19. data/lib/steep/version.rb +1 -1
  20. data/steep.gemspec +6 -7
  21. metadata +23 -146
  22. data/exe/rbs +0 -3
  23. data/vendor/ruby-signature/.github/workflows/ruby.yml +0 -27
  24. data/vendor/ruby-signature/.gitignore +0 -12
  25. data/vendor/ruby-signature/.rubocop.yml +0 -15
  26. data/vendor/ruby-signature/BSDL +0 -22
  27. data/vendor/ruby-signature/COPYING +0 -56
  28. data/vendor/ruby-signature/Gemfile +0 -6
  29. data/vendor/ruby-signature/README.md +0 -93
  30. data/vendor/ruby-signature/Rakefile +0 -142
  31. data/vendor/ruby-signature/bin/annotate-with-rdoc +0 -157
  32. data/vendor/ruby-signature/bin/console +0 -14
  33. data/vendor/ruby-signature/bin/query-rdoc +0 -103
  34. data/vendor/ruby-signature/bin/setup +0 -10
  35. data/vendor/ruby-signature/bin/sort +0 -89
  36. data/vendor/ruby-signature/bin/test_runner.rb +0 -16
  37. data/vendor/ruby-signature/docs/CONTRIBUTING.md +0 -97
  38. data/vendor/ruby-signature/docs/sigs.md +0 -148
  39. data/vendor/ruby-signature/docs/stdlib.md +0 -152
  40. data/vendor/ruby-signature/docs/syntax.md +0 -528
  41. data/vendor/ruby-signature/exe/rbs +0 -7
  42. data/vendor/ruby-signature/lib/rbs.rb +0 -64
  43. data/vendor/ruby-signature/lib/rbs/ast/annotation.rb +0 -27
  44. data/vendor/ruby-signature/lib/rbs/ast/comment.rb +0 -27
  45. data/vendor/ruby-signature/lib/rbs/ast/declarations.rb +0 -395
  46. data/vendor/ruby-signature/lib/rbs/ast/members.rb +0 -362
  47. data/vendor/ruby-signature/lib/rbs/buffer.rb +0 -50
  48. data/vendor/ruby-signature/lib/rbs/builtin_names.rb +0 -55
  49. data/vendor/ruby-signature/lib/rbs/cli.rb +0 -558
  50. data/vendor/ruby-signature/lib/rbs/constant.rb +0 -26
  51. data/vendor/ruby-signature/lib/rbs/constant_table.rb +0 -150
  52. data/vendor/ruby-signature/lib/rbs/definition.rb +0 -170
  53. data/vendor/ruby-signature/lib/rbs/definition_builder.rb +0 -919
  54. data/vendor/ruby-signature/lib/rbs/environment.rb +0 -281
  55. data/vendor/ruby-signature/lib/rbs/environment_loader.rb +0 -136
  56. data/vendor/ruby-signature/lib/rbs/environment_walker.rb +0 -124
  57. data/vendor/ruby-signature/lib/rbs/errors.rb +0 -187
  58. data/vendor/ruby-signature/lib/rbs/location.rb +0 -102
  59. data/vendor/ruby-signature/lib/rbs/method_type.rb +0 -123
  60. data/vendor/ruby-signature/lib/rbs/namespace.rb +0 -91
  61. data/vendor/ruby-signature/lib/rbs/parser.y +0 -1344
  62. data/vendor/ruby-signature/lib/rbs/prototype/rb.rb +0 -553
  63. data/vendor/ruby-signature/lib/rbs/prototype/rbi.rb +0 -587
  64. data/vendor/ruby-signature/lib/rbs/prototype/runtime.rb +0 -381
  65. data/vendor/ruby-signature/lib/rbs/substitution.rb +0 -46
  66. data/vendor/ruby-signature/lib/rbs/test.rb +0 -26
  67. data/vendor/ruby-signature/lib/rbs/test/errors.rb +0 -61
  68. data/vendor/ruby-signature/lib/rbs/test/hook.rb +0 -294
  69. data/vendor/ruby-signature/lib/rbs/test/setup.rb +0 -58
  70. data/vendor/ruby-signature/lib/rbs/test/spy.rb +0 -325
  71. data/vendor/ruby-signature/lib/rbs/test/test_helper.rb +0 -183
  72. data/vendor/ruby-signature/lib/rbs/test/type_check.rb +0 -254
  73. data/vendor/ruby-signature/lib/rbs/type_name.rb +0 -70
  74. data/vendor/ruby-signature/lib/rbs/types.rb +0 -936
  75. data/vendor/ruby-signature/lib/rbs/variance_calculator.rb +0 -138
  76. data/vendor/ruby-signature/lib/rbs/vendorer.rb +0 -47
  77. data/vendor/ruby-signature/lib/rbs/version.rb +0 -3
  78. data/vendor/ruby-signature/lib/rbs/writer.rb +0 -269
  79. data/vendor/ruby-signature/lib/ruby/signature.rb +0 -7
  80. data/vendor/ruby-signature/rbs.gemspec +0 -46
  81. data/vendor/ruby-signature/stdlib/abbrev/abbrev.rbs +0 -60
  82. data/vendor/ruby-signature/stdlib/base64/base64.rbs +0 -71
  83. data/vendor/ruby-signature/stdlib/benchmark/benchmark.rbs +0 -372
  84. data/vendor/ruby-signature/stdlib/builtin/array.rbs +0 -1997
  85. data/vendor/ruby-signature/stdlib/builtin/basic_object.rbs +0 -280
  86. data/vendor/ruby-signature/stdlib/builtin/binding.rbs +0 -177
  87. data/vendor/ruby-signature/stdlib/builtin/builtin.rbs +0 -45
  88. data/vendor/ruby-signature/stdlib/builtin/class.rbs +0 -145
  89. data/vendor/ruby-signature/stdlib/builtin/comparable.rbs +0 -116
  90. data/vendor/ruby-signature/stdlib/builtin/complex.rbs +0 -400
  91. data/vendor/ruby-signature/stdlib/builtin/constants.rbs +0 -37
  92. data/vendor/ruby-signature/stdlib/builtin/data.rbs +0 -5
  93. data/vendor/ruby-signature/stdlib/builtin/deprecated.rbs +0 -2
  94. data/vendor/ruby-signature/stdlib/builtin/dir.rbs +0 -413
  95. data/vendor/ruby-signature/stdlib/builtin/encoding.rbs +0 -607
  96. data/vendor/ruby-signature/stdlib/builtin/enumerable.rbs +0 -404
  97. data/vendor/ruby-signature/stdlib/builtin/enumerator.rbs +0 -260
  98. data/vendor/ruby-signature/stdlib/builtin/errno.rbs +0 -781
  99. data/vendor/ruby-signature/stdlib/builtin/errors.rbs +0 -582
  100. data/vendor/ruby-signature/stdlib/builtin/exception.rbs +0 -194
  101. data/vendor/ruby-signature/stdlib/builtin/false_class.rbs +0 -40
  102. data/vendor/ruby-signature/stdlib/builtin/fiber.rbs +0 -68
  103. data/vendor/ruby-signature/stdlib/builtin/fiber_error.rbs +0 -12
  104. data/vendor/ruby-signature/stdlib/builtin/file.rbs +0 -1076
  105. data/vendor/ruby-signature/stdlib/builtin/file_test.rbs +0 -59
  106. data/vendor/ruby-signature/stdlib/builtin/float.rbs +0 -696
  107. data/vendor/ruby-signature/stdlib/builtin/gc.rbs +0 -243
  108. data/vendor/ruby-signature/stdlib/builtin/hash.rbs +0 -1029
  109. data/vendor/ruby-signature/stdlib/builtin/integer.rbs +0 -707
  110. data/vendor/ruby-signature/stdlib/builtin/io.rbs +0 -683
  111. data/vendor/ruby-signature/stdlib/builtin/kernel.rbs +0 -576
  112. data/vendor/ruby-signature/stdlib/builtin/marshal.rbs +0 -161
  113. data/vendor/ruby-signature/stdlib/builtin/match_data.rbs +0 -271
  114. data/vendor/ruby-signature/stdlib/builtin/math.rbs +0 -369
  115. data/vendor/ruby-signature/stdlib/builtin/method.rbs +0 -185
  116. data/vendor/ruby-signature/stdlib/builtin/module.rbs +0 -1104
  117. data/vendor/ruby-signature/stdlib/builtin/nil_class.rbs +0 -82
  118. data/vendor/ruby-signature/stdlib/builtin/numeric.rbs +0 -409
  119. data/vendor/ruby-signature/stdlib/builtin/object.rbs +0 -824
  120. data/vendor/ruby-signature/stdlib/builtin/proc.rbs +0 -429
  121. data/vendor/ruby-signature/stdlib/builtin/process.rbs +0 -1227
  122. data/vendor/ruby-signature/stdlib/builtin/random.rbs +0 -267
  123. data/vendor/ruby-signature/stdlib/builtin/range.rbs +0 -226
  124. data/vendor/ruby-signature/stdlib/builtin/rational.rbs +0 -424
  125. data/vendor/ruby-signature/stdlib/builtin/rb_config.rbs +0 -57
  126. data/vendor/ruby-signature/stdlib/builtin/regexp.rbs +0 -1083
  127. data/vendor/ruby-signature/stdlib/builtin/ruby_vm.rbs +0 -14
  128. data/vendor/ruby-signature/stdlib/builtin/signal.rbs +0 -55
  129. data/vendor/ruby-signature/stdlib/builtin/string.rbs +0 -1901
  130. data/vendor/ruby-signature/stdlib/builtin/string_io.rbs +0 -284
  131. data/vendor/ruby-signature/stdlib/builtin/struct.rbs +0 -40
  132. data/vendor/ruby-signature/stdlib/builtin/symbol.rbs +0 -228
  133. data/vendor/ruby-signature/stdlib/builtin/thread.rbs +0 -1108
  134. data/vendor/ruby-signature/stdlib/builtin/thread_group.rbs +0 -23
  135. data/vendor/ruby-signature/stdlib/builtin/time.rbs +0 -1047
  136. data/vendor/ruby-signature/stdlib/builtin/trace_point.rbs +0 -290
  137. data/vendor/ruby-signature/stdlib/builtin/true_class.rbs +0 -46
  138. data/vendor/ruby-signature/stdlib/builtin/unbound_method.rbs +0 -153
  139. data/vendor/ruby-signature/stdlib/builtin/warning.rbs +0 -17
  140. data/vendor/ruby-signature/stdlib/coverage/coverage.rbs +0 -62
  141. data/vendor/ruby-signature/stdlib/csv/csv.rbs +0 -773
  142. data/vendor/ruby-signature/stdlib/erb/erb.rbs +0 -392
  143. data/vendor/ruby-signature/stdlib/find/find.rbs +0 -40
  144. data/vendor/ruby-signature/stdlib/ipaddr/ipaddr.rbs +0 -247
  145. data/vendor/ruby-signature/stdlib/json/json.rbs +0 -335
  146. data/vendor/ruby-signature/stdlib/pathname/pathname.rbs +0 -1093
  147. data/vendor/ruby-signature/stdlib/prime/integer-extension.rbs +0 -23
  148. data/vendor/ruby-signature/stdlib/prime/prime.rbs +0 -188
  149. data/vendor/ruby-signature/stdlib/securerandom/securerandom.rbs +0 -9
  150. data/vendor/ruby-signature/stdlib/set/set.rbs +0 -301
  151. 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,5 +0,0 @@
1
- # This is a deprecated class, base class for C extensions using Data_Make_Struct
2
- # or Data_Wrap_Struct.
3
- #
4
- class Data < Object
5
- end
@@ -1,2 +0,0 @@
1
- Fixnum: singleton(Integer)
2
- Bignum: singleton(Integer)
@@ -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