[#98098] [Ruby master Feature#16824] Follow RubyGems naming conventions for the stdlib — shannonskipper@...

Issue #16824 has been reported by shan (Shannon Skipper).

14 messages 2020/05/01

[#98147] [Ruby master Feature#16832] Use #name rather than #inspect to build "uninitialized constant" error messages — jean.boussier@...

Issue #16832 has been reported by byroot (Jean Boussier).

20 messages 2020/05/06

[#98174] [Ruby master Bug#16837] Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions? — takashikkbn@...

Issue #16837 has been reported by k0kubun (Takashi Kokubun).

10 messages 2020/05/07

[#98241] [Ruby master Bug#16845] Building Ruby with old existing system Ruby results in make error with ./tool/file2lastrev.rb — erik@...

Issue #16845 has been reported by ErikSwan (Erik Swan).

7 messages 2020/05/09

[#98256] [Ruby master Feature#16847] Cache instruction sequences by default — jean.boussier@...

Issue #16847 has been reported by byroot (Jean Boussier).

16 messages 2020/05/11

[#98257] [Ruby master Feature#16848] Allow callables in $LOAD_PATH — jean.boussier@...

Issue #16848 has been reported by byroot (Jean Boussier).

27 messages 2020/05/11

[#98318] [Ruby master Bug#16853] calling bla(hash, **kw) with a string-based hash passes the strings into **kw (worked < 2.7) [email protected]

Issue #16853 has been reported by sylvain.joyeux (Sylvain Joyeux).

12 messages 2020/05/13

[#98355] [Ruby master Bug#16889] TracePoint.enable { ... } also activates the TracePoint for other threads, even outside the block — eregontp@...

Issue #16889 has been reported by Eregon (Benoit Daloze).

16 messages 2020/05/14

[#98363] [Ruby master Feature#16891] Restore Positional Argument to Keyword Conversion — merch-redmine@...

Issue #16891 has been reported by jeremyevans0 (Jeremy Evans).

23 messages 2020/05/14

[#98371] [Ruby master Feature#16894] Integer division for Ruby 3 — andrew@...

Issue #16894 has been reported by ankane (Andrew Kane).

18 messages 2020/05/15

[#98391] [Ruby master Bug#16896] MakeMakefile methods should be private — eregontp@...

Issue #16896 has been reported by Eregon (Benoit Daloze).

10 messages 2020/05/15

[#98396] [Ruby master Feature#16897] Can a Ruby 3.0 compatible general purpose memoizer be written in such a way that it matches Ruby 2 performance? — sam.saffron@...

Issue #16897 has been reported by sam.saffron (Sam Saffron).

25 messages 2020/05/16

[#98453] [Ruby master Bug#16904] rubygems: psych: superclass mismatch for class Mark (TypeError) — jaruga@...

Issue #16904 has been reported by jaruga (Jun Aruga).

18 messages 2020/05/20

[#98486] [Ruby master Bug#16908] Strange behaviour of Hash#shift when used with `default_proc`. — samuel@...

Issue #16908 has been reported by ioquatix (Samuel Williams).

14 messages 2020/05/23

[#98569] [Ruby master Bug#16921] s390x: ramdom test failures for timeout or segmentation fault — jaruga@...

Issue #16921 has been reported by jaruga (Jun Aruga).

9 messages 2020/05/29

[#98599] [Ruby master Bug#16926] Kernel#require does not load a feature twice when $LOAD_PATH has been modified spec fails only on 2.7 — eregontp@...

Issue #16926 has been reported by Eregon (Benoit Daloze).

12 messages 2020/05/31

[ruby-core:98246] [Ruby master Bug#16831] Running `Pathname#glob` with `File::FNM_DOTMATCH` option loses `.` and `..`

From: me@...
Date: 2020-05-10 01:53:35 UTC
List: ruby-core #98246
Issue #16831 has been updated by jnchito (Junichi Ito).


Thank you for your explanation. With your hint and reading [the implementation code](https://github.com/ruby/ruby/blob/761528e8aa7c54ec92c90335fe26a584b992918b/ext/pathname/pathname.c#L1131-L1161) solved my question.

Dan0042 (Daniel DeLorme) wrote in #note-3:
> I don't think those can have consistent results, because Pathname#glob is equivalent to using the `base` option of `Dir.glob` and then joining the paths, which is not the same as joining the paths into a glob and then invoking `Dir.glob`. In particular they have different behavior if the base contains globbing characters. And I don't think there's a method of Pathname that allows to join without cleaning the path.
> 
> ```ruby
> b = Pathname.new("ext")
> b.glob("*").min            #=> #<Pathname:ext/-test->
> Dir.glob("*", base: b).min #=> "-test-"
> Dir.glob(b+"*").min        #=> "ext/-test-"
> 
> b = Pathname.new("{ext,man}")
> b.glob("*").min            #=> nil because there's no literal "{ext,man}" dir
> Dir.glob("*", base: b).min #=> nil
> Dir.glob(b+"*").min        #=> "ext/-test-"
> ```



Dan0042 (Daniel DeLorme) wrote in #note-3:
> I don't think those can have consistent results, because Pathname#glob is equivalent to using the `base` option of `Dir.glob` and then joining the paths, which is not the same as joining the paths into a glob and then invoking `Dir.glob`. In particular they have different behavior if the base contains globbing characters. And I don't think there's a method of Pathname that allows to join without cleaning the path.
> 
> ```ruby
> b = Pathname.new("ext")
> b.glob("*").min            #=> #<Pathname:ext/-test->
> Dir.glob("*", base: b).min #=> "-test-"
> Dir.glob(b+"*").min        #=> "ext/-test-"
> 
> b = Pathname.new("{ext,man}")
> b.glob("*").min            #=> nil because there's no literal "{ext,man}" dir
> Dir.glob("*", base: b).min #=> nil
> Dir.glob(b+"*").min        #=> "ext/-test-"
> ```



----------------------------------------
Bug #16831: Running `Pathname#glob` with `File::FNM_DOTMATCH` option loses `.` and `..`
https://bugs.ruby-lang.org/issues/16831#change-85487

* Author: jnchito (Junichi Ito)
* Status: Open
* Priority: Normal
* ruby -v: ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Running `Dir.glob`, `Pathname.glob` with `File::FNM_DOTMATCH` option keeps `.` and `..` as their basename:

``` ruby
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 `..`:

``` ruby
# 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 `..`.




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next