logo       

[ruby-list:42478] Re: ReFeデータベース構築失敗: msg#00132

lang.ruby.japanese

Subject: [ruby-list:42478] Re: ReFeデータベース構築失敗

青木です。

In mail "[ruby-list:42452] ReFeデータベース構築失敗"
MIYAJIMA Mitsuharu <miya-LNG/CMyjFW/YtjvyW6yDsg@xxxxxxxxxxxxxxxx> wrote:

> 宮嶋と申します。
>
> 最新のリファレンスマニュアルから ReFeのデータベースを作ろうとすると以下
> のエラーが出て失敗するようです。
>
> > mkrefe_rubyrefm man-rd-ja/*.rd
> > /usr/local/lib/ruby/site_ruby/1.8/refe/rubyrefmparser.rb:180:in
> > `get_method_name': (RuntimeError)
> > Array.rd:207: cannot get method name
> > "--- self+(other)\n"
>
> ちょっと調べてみたのですが, Array#+ とかの項目で other の前に ( がある
> ことで正規表現がマッチしないようです。とりあえず以下のパッチで回避しま
> した。

これは、元データのほうがおかしいと思います。どうやら
インデックスを張るためにやってるようですけど、この記法は
(特に self[](a) みたいのは) Ruby のコードとしても通用
しないし、慣習的な Class#method 記法でもないので、不適切
だと思います。

ひとまず ReFe の CVS 版には対応コードを入れておきますが、
この記法が長期に渡って使われるのは拒否したい気持ちです。

Index: lib/refe/rubyrefmparser.rb
===================================================================
RCS file: /var/cvs/src/refe/lib/refe/rubyrefmparser.rb,v
retrieving revision 1.12
diff -u -r1.12 rubyrefmparser.rb
--- lib/refe/rubyrefmparser.rb 2 Nov 2005 22:51:58 -0000 1.12
+++ lib/refe/rubyrefmparser.rb 24 Jun 2006 05:22:01 -0000
@@ -239,6 +239,8 @@
$1
when /\A(?:---|:)\s*([A-Z]\w+\*)/ # HKEY_*
$1
+ when /\A(?:---|:)\s*self([+\-<>=~*^&|%\/\[\]]+)\(\w/ # self+(other)
+ $1
else
nil
end

--
青木峰郎




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise