ruby / rake

A make-like build utility for Ruby.

Home Page:https://ruby.github.io/rake

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pathname#pathmap is still (erronously) documented

jasonkarns opened this issue · comments

The rake docs here still indicate that Pathname#pathmap exists. However, it was removed by #130

It would be easy enough to fix the docs. But perhaps a different question is, why was this removed from Pathname?

I expected the following to work, but instead got NoMethodError: undefined method 'pathmap' for #<Pathname

array_of_pathnames.each do |p|
  directory p.pathmap('%d')
end

Surely it's easy enough to use directory p.dirname. However, I have a lambda that is also used as a rule dep (to ensure the parent directories are created). I was hoping to use the same lambda when iterating over the array_of_pathnames.

dirname = ->(f) { f.pathmap('%d') }

pathnames.map(&dirname).map(&method(:directory))

rule %r{pattern} => dirname do |t|
  # stuff
end

As long as we're extending String, I'd expect the same extensions to work on the "more domain appropriate" Pathname.

I'm not sure why it's still exists. It was removed from the current top page that is https://ruby.github.io/rake/index.html .

restore pathmap extension please. At least have it available to load 'require "rake/ext/pathmap"

@hsbt Is there any discussion thread on why the pathmap extension was removed from Pathname?

I could understand if the eventual goal is to remove it from String as well. Though as long as String has it, I'd expect Pathname to have it as well? If the eventual goal is to remove the extensions entirely (or perhaps make them opt-in?) should it be removed from both String and Pathname at the same time so the interfaces remain consistent?