それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

文字列と文字列の引き算。

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で消す(引く)じゃないですか.それと同じ感じなると思うんです