[#23168] File.fnmatch のリファクタリング — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

13 messages 2004/03/08

[#23192] File.fnmatch と Dir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

19 messages 2004/03/13
[#23194] Re: File.fnmatch と Dir.glob の非互換部分 — matz@... (Yukihiro Matsumoto) 2004/03/13

まつもと ゆきひろです

[#23195] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/14

山本です。

[#23196] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/14

山本です。

[#23260] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/30

山本です。

[#23261] Re: File.fnmatch とDir.glob の非互換部分 — matz@... (Yukihiro Matsumoto) 2004/03/30

まつもと ゆきひろです

[#23265] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/30

山本です。

[#23238] Re: [ruby-cvs] ruby, ruby/lib, ruby/lib/rss, ruby/sample/openssl: * lib/logger.rb: trim tail space of each line. no user visible change. — Kouhei Sutou <kou@...>

須藤です.

10 messages 2004/03/27

[ruby-dev:23234] Re: English alias

From: Minero Aoki <aamine@...>
Date: 2004-03-26 13:12:51 UTC
List: ruby-dev #23234
青木です。

  In mail "[ruby-dev:23233] Re: English alias"
    nobu.nakada@nifty.ne.jp wrote:

> なかだです。

> > ちゅーか、ものによってそれぞれだと思います。そもそもグローバ
> > ルな状態が望ましくないものも多いですし。私の記憶が正しければ、
> > $<記号>変数のほとんどにはすでに代替手段を用意していると思い
> > ます。だから、むしろ警告を出すようにすればよいのではないかと。
> 
> 個人的には、(使った例がないものを除けば)$",$`,$'が面倒かなと。
> とくに$"はreplace等で置き換わることもあるのがいささか。実際
> String以外を追加してもその場ではなにも言わないわけで。

$" と $: はどこかにまとめてほしいですね……。ついでに言えば、
ライブラリ foo がどこにあるか検索するメソッドが欲しいです。
いつもこんなライブラリを使ってエミュレートしてます。

#
# $Id: rubyloader.rb,v 1.6 2004/02/12 14:53:48 aamine Exp $
#
# Copyright (c) 1999-2004 Minero Aoki
#
# This program is free software.
# You can distribute/modify this program under the terms of
# the GNU LGPL, Lesser General Public License version 2.1.
# For details of the GNU LGPL, see the file "COPYING".
#

require 'rbconfig'

module RubyLoader
  def find_feature(feature)
    candidacy_pathes(feature).find {|path| File.file?(path) }
  end
  module_function :find_feature

  def provided?(feature)
    $".any? {|loaded|
      canonicalize_feature(feature).any? {|feat| feat == loaded }
    }
  end
  module_function :provided?

  alias required? provided?
  module_function :required?

  def provide(feature)
    $".push feature
  end
  module_function :provide

  def candidacy_pathes(feature)
    canonicalize_feature(feature).map {|ent|
      $LOAD_PATH.map {|dir| "#{dir}/#{ent}" }
    }.flatten
  end
  module_function :candidacy_pathes

  def canonicalize_feature(feature)
    if /\.(?:rb|#{Config::CONFIG['DLEXT']})\z/o === feature
      [feature]
    else
      ["#{feature}.rb",
       "#{feature}.#{Config::CONFIG['DLEXT']}"]
    end
  end
  module_function :canonicalize_feature
end


-------------------------------------------------------------------
青木峰郎

In This Thread