Skip to content

Pathname#pathmap is still (erronously) documented #348

Open

Description

@jasonkarns

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.

Activity

  1. hsbt commented on Jul 6, 2021

    @hsbt
    Member

    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 .

  2. dsisnero commented on Nov 3, 2021

    @dsisnero

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

  3. jasonkarns commented on Oct 31, 2022

    @jasonkarns
    ContributorAuthor

    @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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions