Lessons from Hpricot のエントリを読んで抑え切れなくなって遊んでみる。
require 'pathname'
class Pathname
def /(path)
self + path
end
end
def method_missing(name, *args)
name.to_s
end
実行結果はこんなかんじ。
root = Pathname.new '/tmp' root/foo/bar # => #<Pathname:/tmp/foo/bar> (root/bar/foo).parent.children # => [#<Pathname:/tmp/foo/bar>, #<Pathname:/tmp/foo/baz>]
もう最高。