Skip to content

Commit

Permalink
Merge pull request #1452 from sampersand/swesterman/23-08-21/update-dir
Browse files Browse the repository at this point in the history
updated dir.rbs
  • Loading branch information
soutaro authored Aug 22, 2023
2 parents 5421329 + 2f27968 commit 75aa408
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 30 deletions.
2 changes: 1 addition & 1 deletion Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ FileList["test/stdlib/**/*_test.rb"].each do |test|
end
end

task :stdlib_test do
task :stdlib_test => :compile do
test_files = FileList["test/stdlib/**/*_test.rb"].reject do |path|
path =~ %r{Ractor}
end
Expand Down
1 change: 1 addition & 0 deletions core/builtin.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ type real = Integer | Float | Rational

type string = String | _ToStr
type encoding = Encoding | string
type path = string | _ToPath

type io = IO | _ToIO

Expand Down
50 changes: 25 additions & 25 deletions core/dir.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -102,15 +102,15 @@ class Dir
# The optional *encoding* keyword argument specifies the encoding of the
# directory. If not specified, the filesystem encoding is used.
#
def initialize: (string, ?encoding: encoding | nil) -> void
def initialize: (path dir, ?encoding: encoding?) -> self

# <!--
# rdoc-file=dir.rb
# - Dir[ string [, string ...] [, base: path] [, sort: true] ] -> array
# -->
# Equivalent to calling `Dir.glob([`*string,...*`], 0)`.
#
def self.[]: (*string patterns, ?base: string) ?{ (String path) -> void } -> Array[String]
def self.[]: (*path patterns, ?base: path?, ?sort: bool) -> Array[String]

# <!--
# rdoc-file=dir.c
Expand Down Expand Up @@ -149,8 +149,8 @@ class Dir
# /tmp
# /var/spool/mail
#
def self.chdir: (?string) -> void
| [U] (?string) { (String) -> U } -> U
def self.chdir: (?path dir) -> 0
| [U] (?path dir) { (String dir) -> U } -> U

# <!--
# rdoc-file=dir.c
Expand All @@ -166,7 +166,7 @@ class Dir
#
# Dir.children("testdir") #=> ["config.h", "main.rb"]
#
def self.children: (string dirname, ?encoding: string | Encoding | nil enc) -> Array[String]
def self.children: (path dirname, ?encoding: encoding?) -> Array[String]

# <!--
# rdoc-file=dir.c
Expand All @@ -176,7 +176,7 @@ class Dir
# may make this call. Not available on all platforms. On Unix systems, see
# `chroot(2)` for more information.
#
def self.chroot: (string) -> void
def self.chroot: (path root) -> 0

# <!--
# rdoc-file=dir.c
Expand All @@ -187,7 +187,7 @@ class Dir
# Deletes the named directory. Raises a subclass of SystemCallError if the
# directory isn't empty.
#
def self.delete: (string) -> void
def self.delete: (path dirname) -> 0

# <!--
# rdoc-file=dir.c
Expand All @@ -208,8 +208,8 @@ class Dir
# Got config.h
# Got main.rb
#
def self.each_child: (string dirname, ?encoding: string | Encoding | nil enc) -> Enumerator[String, void]
| (string dirname, ?encoding: string | Encoding | nil enc) { (String filename) -> void } -> void
def self.each_child: (path dirname, ?encoding: encoding?) -> Enumerator[String, nil]
| (path dirname, ?encoding: encoding?) { (String filename) -> void } -> nil

# <!--
# rdoc-file=dir.c
Expand All @@ -218,7 +218,7 @@ class Dir
# Returns `true` if the named file is an empty directory, `false` if it is not a
# directory or non-empty.
#
def self.empty?: (string path_name) -> bool
def self.empty?: (path path_name) -> bool

# <!--
# rdoc-file=dir.c
Expand All @@ -233,15 +233,15 @@ class Dir
#
# Dir.entries("testdir") #=> [".", "..", "config.h", "main.rb"]
#
def self.entries: (string dirname, ?encoding: encoding | nil enc) -> ::Array[String]
def self.entries: (path dirname, ?encoding: encoding?) -> Array[String]

# <!--
# rdoc-file=dir.c
# - Dir.exist?(file_name) -> true or false
# -->
# Returns `true` if the named file is a directory, `false` otherwise.
#
def self.exist?: (string file) -> bool
def self.exist?: (path | _ToIO file_name) -> bool

# <!--
# rdoc-file=dir.c
Expand Down Expand Up @@ -371,8 +371,8 @@ class Dir
#
# Dir.glob("**/lib/*.rb") #=> ["lib/song.rb"]
#
def self.glob: (string | ::Array[string] pattern, ?Integer flags, ?base: string) -> ::Array[String]
| (string | ::Array[string] pattern, ?Integer flags, ?base: string) { (String) -> void } -> void
def self.glob: (_ToAry[path] | path pattern, ?int flags, ?base: path?, ?sort: bool) -> Array[String]
| (_ToAry[path] | path pattern, ?int flags, ?base: path?, ?sort: bool) { (String pathname) -> void } -> nil

# <!--
# rdoc-file=dir.c
Expand All @@ -381,7 +381,7 @@ class Dir
# -->
# Returns the home directory of the current user or the named user if given.
#
def self.home: (?string user) -> String
def self.home: (?string? user) -> String

# <!--
# rdoc-file=dir.c
Expand All @@ -395,7 +395,7 @@ class Dir
#
# Dir.mkdir(File.join(Dir.home, ".foo"), 0700) #=> 0
#
def self.mkdir: (string, ?Integer permissions) -> void
def self.mkdir: (path dirname, ?int permissions) -> 0

# <!--
# rdoc-file=dir.rb
Expand All @@ -411,8 +411,8 @@ class Dir
# passed *aDir* as a parameter. The directory is closed at the end of the block,
# and Dir::open returns the value of the block.
#
def self.open: (string, ?encoding: encoding | nil) -> Dir
| [U] (string, ?encoding: encoding | nil) { (Dir) -> U } -> U
def self.open: (path dirname, ?encoding: encoding?) -> instance
| [U] (path dirname, ?encoding: encoding?) { (instance) -> U } -> U

# <!--
# rdoc-file=dir.c
Expand All @@ -425,7 +425,7 @@ class Dir
# Dir.getwd #=> "/tmp"
# Dir.pwd #=> "/tmp"
#
def self.pwd: () -> String
alias self.pwd self.getwd

# <!--
# rdoc-file=dir.c
Expand Down Expand Up @@ -473,7 +473,7 @@ class Dir
# d = Dir.new("testdir")
# d.close #=> nil
#
def close: () -> void
def close: () -> nil

# <!--
# rdoc-file=dir.c
Expand All @@ -496,7 +496,7 @@ class Dir
# Got main.rb
#
def each: () { (String) -> void } -> self
| () -> ::Enumerator[String, self]
| () -> Enumerator[String, self]

# <!--
# rdoc-file=dir.c
Expand All @@ -517,7 +517,7 @@ class Dir
# Got main.rb
#
def each_child: () { (String) -> void } -> self
| () -> ::Enumerator[String, self]
| () -> Enumerator[String, self]

# <!--
# rdoc-file=dir.c
Expand Down Expand Up @@ -577,7 +577,7 @@ class Dir
# d.pos = i #=> 12
# d.read #=> ".."
#
def pos=: (Integer pos) -> Integer
def pos=: [U < _ToInt] (U pos) -> U

# <!--
# rdoc-file=dir.c
Expand Down Expand Up @@ -620,7 +620,7 @@ class Dir
# d.seek(i) #=> #<Dir:0x401b3c40>
# d.read #=> ".."
#
def seek: (Integer) -> self
def seek: (int pos) -> self

# <!--
# rdoc-file=dir.c
Expand All @@ -634,7 +634,7 @@ class Dir
# d.read #=> "."
# d.tell #=> 12
#
def tell: () -> Integer
alias tell pos

# <!-- rdoc-file=dir.c -->
# Returns the path parameter passed to *dir*'s constructor.
Expand Down
4 changes: 0 additions & 4 deletions test/stdlib/Dir_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,6 @@ def test_square_bracket
Dir, :[], "*/*"
assert_send_type "(::ToStr) -> ::Array[::String]",
Dir, :[], ToStr.new("*/*")
assert_send_type "(::String) { (::String) -> void } -> Array[String]",
Dir, :[], "*/*" do end
assert_send_type "(::String, ::String, base: ::String) -> ::Array[::String]",
Dir, :[], "*/*", "*", base: __dir__
end

def test_chdir
Expand Down

0 comments on commit 75aa408

Please sign in to comment.