2008年2月12日

[ruby-list:44614] Re: Pathname で拡張子を変更する

In article <47AFF439.1080708@xxxxx>,
"5.5" <5.5@xxxxx> writes:

> 正規表現リテラルのところで一瞬考えちゃいますが,メソッド
> 一つで書けて簡潔ですね。早速使わせていただこうと思います。
> るびきちさん,ありがとうござました。
>
> ※やっぱり専用メソッドはほしいですが。


こんなところですかねぇ。

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
+ # <i>repl</i>.
+ 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)
--
[田中 哲][たなか あきら][Tanaka Akira]

投稿者 xml-rpc : 2008年2月12日 16:13
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/69692
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。