Rubyで文字列と文字列の引き算が出来れば、コードが読みやすくなると思いました。
"httpd.conf.bak" - ".bak" #=> "httpd.conf"
になればいいと思いませんか.僕はイイと思います.extname をつかって dirname するよりスッキリしてて良いですよね.
文字列どうしの引き算
class String def -(str) self.sub(str,'') end end
例
"3月のライオン" -"ライオン" #=> "3月の"
結局はString#sub するだけなんですけど・・・僕はこの方がずいぶんとイメージしやすいと思います.subじゃなくて消すだけなんだし.
2011-09-10追加 引き算っぽくするために、末尾以外から引けない様に改良
class String def -(str) self.gsub(%r"#{str}$",'') end end
末尾からだけ削除できたらより引き算っぽい。(気がする.。
"3月のライオン" - "ライオン" #=> "3月の" "3月のライオン" - "ライ" #=> "3月のライオン"
ファイルパスを扱うのもこっちの方がわかりやすい(気がする
"/home/takuya/desktop/test" - "test" #=> /home/takuya/desktop/ "/home/takuya/desktop/test" - "desktop" #=> /home/takuya/desktop/test
Stringは足し算が出来るのに引算が出来無いのはなんか違うと思うんだ。
だってパスを編集するときBackSpaceで消す(引く)じゃないですか.それと同じ感じなると思うんです