Project

General

Profile

Actions

Bug #16831

closed

Running `Pathname#glob` with `File::FNM_DOTMATCH` option loses `.` and `..`

Added by jnchito (Junichi Ito) over 4 years ago. Updated over 4 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
[ruby-core:98144]

Description

Running Dir.glob, Pathname.glob with File::FNM_DOTMATCH option keeps . and .. as their basename:

require 'pathname'

pathname = Pathname.pwd
#=> #<Pathname:/Users/jnito/dev>

# Dir.glob keeps "." and ".."
Dir.glob(pathname.join('*'), File::FNM_DOTMATCH).sort[0..1]
#=> ["/Users/jnito/dev/.", "/Users/jnito/dev/.."]

# Pathname.glob keeps "." and ".." too
Pathname.glob(pathname.join('*'), File::FNM_DOTMATCH).sort[0..1]
#=> [#<Pathname:/Users/jnito/dev/.>, #<Pathname:/Users/jnito/dev/..>]

I expect Pathname#glob with File::FNM_DOTMATCH option has same behavior, but it loses . and ..:

# Pathname#glob loses "." and ".."
pathname.glob('*', File::FNM_DOTMATCH).sort[0..1]
#=> [#<Pathname:/Users/jnito>, #<Pathname:/Users/jnito/dev>]

I wanted to replace my code from Pathname.glob(pathname.join('*'), File::FNM_DOTMATCH) to pathname.glob('*', File::FNM_DOTMATCH), but I couldn't do due to their incompatibility. So I want Pathname#glob to keep . and ...


Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #17280: Dir.glob with FNM_DOTMATCH matches ".." and "." and results in duplicated entriesClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0