From: kuwabara@... Date: 2018-01-26T14:08:21+00:00 Subject: [ruby-core:85131] [Ruby trunk Feature#14405] Add base option to Pathname.glob also Issue #14405 has been reported by pocke (Masataka Kuwabara). ---------------------------------------- Feature #14405: Add base option to Pathname.glob also https://bugs.ruby-lang.org/issues/14405 * Author: pocke (Masataka Kuwabara) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- `Dir.glob` has `base` option since Ruby 2.5. https://bugs.ruby-lang.org/issues/13056 However `Pathname.glob` does not have the option. I would like to use `base` option with `Pathname` class. But I feel `Dir.glob('*.rb', base: 'dir').map{|path|Pathname(path)}` is lengthy, so I'd like to add the option to `Pathname.glob`. This patch adds the option to `Pathname.glob` also. For example: ``` require 'pathname' p Pathname.glob('lib/i*.rb', 0) # => [#, #] p Dir.glob('i*.rb', 0, base: 'lib') # => ["irb.rb", "ipaddr.rb"] p Dir.glob('i*.rb', base: 'lib') # => ["irb.rb", "ipaddr.rb"] p Pathname.glob('i*.rb', 0, base: 'lib') # => [#, #] p Pathname.glob('i*.rb', base: 'lib') # => [#, #] p Pathname.glob('i*.rb', base: Pathname('lib')) # => [#, #] p Pathname.glob('i*.rb', base: Pathname(`pwd`.chomp) / 'lib') # => [#, #] p Pathname.glob('i*.rb', base: File.join(`pwd`.chomp, 'lib')) # => [#, #] Pathname.glob('i*.rb', foo: 'bar') rescue p $! # => # Pathname.glob('i*.rb', foo: 'bar') rescue p $!.backtrace # => ["<...>/test.rb:13:in `glob'", "<...>/test.rb:13:in `glob'", "<...>/test.rb:13:in `
'"] ``` If the patch is OK, I'll do the follwoing TODOs. - Add documentation - Add tests to here. https://github.com/ruby/ruby/blob/d891056e3a6232163e99636cfcbb7bbfe1291404/test/pathname/test_pathname.rb#L1231-L1241 ---Files-------------------------------- pathname-glob-base.patch (597 Bytes) -- https://bugs.ruby-lang.org/ Unsubscribe: