FileUtils#.mkpath と Pathname#mkpath の挙動

$ irb
> require 'pathname'
=> true
> Pathname.new('~/tmp').expand_path.mkpath
=> nil

mkpath

FileUtils.mkpath(self.to_s) と同じです。
[SEE_ALSO] FileUtils.#mkpath

class Pathname

[RETURN]

list を返します。

module function FileUtils.#makedirs

あれれれれれれ??????????

まあ、どうでもいいです。問題はそこじゃない

Pathname.new('~/tmp').expand_path.mkpath.entries

こういうコードが書けない。 Pathname#mkpath がnilを返すから。これはイケてない。

class Pathname
  def mkpath
    Pathname.new(FileUtils.mkpath(self.to_s))
  end
end

Pathname -> String -> Pathname という、とても非効率的な変換をしているけど、仕方がない。