From: "5.5" <5.5@...> Date: 2008-02-13T07:21:09+09:00 Subject: [ruby-list:44619] Re: Pathname で拡張子を変更する 5.5 です。 Tanaka Akira さんは書きました: > こんなところですかねぇ。 > > Index: lib/pathname.rb > =================================================================== > --- lib/pathname.rb (revision 15443) > +++ lib/pathname.rb (working copy) > @@ -255,11 +255,19 @@ class Pathname > end > > if File::ALT_SEPARATOR > - SEPARATOR_PAT = /[#{Regexp.quote File::ALT_SEPARATOR}#{Regexp.quote File::SEPARATOR}]/ > + SEPARATOR_LIST = "#{Regexp.quote File::ALT_SEPARATOR}#{Regexp.quote File::SEPARATOR}" > + SEPARATOR_PAT = /[#{SEPARATOR_LIST}]/ > else > + SEPARATOR_LIST = "#{Regexp.quote File::SEPARATOR}" > SEPARATOR_PAT = /#{Regexp.quote File::SEPARATOR}/ > end > > + # Return a pathname which the extention of the basename is substituted by > + # repl. > + def sub_ext(repl) > + self.class.new(@path.sub(%r{\.[^#{SEPARATOR_LIST}.]*\z}o) { repl }) > + end > + > # chop_basename(path) -> [pre-basename, basename] or nil > def chop_basename(path) > base = File.basename(path) 田中哲さんありがとうございました。 が,私にはなんだかよく分かりません。これが「パッチ」と呼ばれるもの で,修正前/後のコードの差分を -/+ で表したものらしいということは かろうじて知っているのですが,中身が分かりません。 要望を取り上げてくださったことに感謝して,あとは開発の方々におまか せしたいと思います。どうぞよろしくお願いします。 -- 5.5@moji.gr.jp