[#48989] 1234567890 gemについて — masa <masap.hat@...>
Quineが好きな畠山です。
4 messages
2012/11/01
[#48992] [ANN]Ruby-2.0.0-preview1 msi — arton <artonx@...>
artonです。
5 messages
2012/11/03
[#49004] 東京Ruby忘年会2012のお誘い — TAKAHASHI Kazunari <takahashi@1syo.net>
かじゃはしと申します
1 message
2012/11/05
[#49017] 文字コード変換で煮詰まっています。 — 井澤 隆浩 <KHB15150@...>
初めまして、井澤隆浩と申します。Rubyをかじり始めたばかりの初心者です。
7 messages
2012/11/27
[ruby-list:48989] 1234567890 gemについて
From:
masa <masap.hat@...>
Date:
2012-11-01 13:59:23 UTC
List:
ruby-list #48989
Quineが好きな畠山です。
先日遠藤さんの1234567890(gem)のインストール(ruby-1.9.3p286, Mac OS X
10.6.8)に失敗して、その後Rubyソースをコンパイルする毎に以下のエラーが出るようになってしまいました(trunkでなくても、最新1.9.3安定板でも同様です)。
/Users/masa/Desktop/test/ruby-trunk-37407/lib/rubygems/specification.rb:287:in
`block in _resort!': undefined method `nonzero?' for nil:NilClass
(NoMethodError)
from /Users/masa/Desktop/test/ruby-trunk-37407/lib/rubygems/specification.rb:284:in
`sort!'
from /Users/masa/Desktop/test/ruby-trunk-37407/lib/rubygems/specification.rb:284:in
`_resort!'
from /Users/masa/Desktop/test/ruby-trunk-37407/lib/rubygems/specification.rb:278:in
`_all'
from /Users/masa/Desktop/test/ruby-trunk-37407/lib/rubygems/specification.rb:411:in
`each'
from /Users/masa/Desktop/test/ruby-trunk-37407/lib/rubygems.rb:483:in `map'
from /Users/masa/Desktop/test/ruby-trunk-37407/lib/rubygems.rb:483:in
`find_files'
from /Users/masa/Desktop/test/ruby-trunk-37407/lib/rdoc/rdoc.rb:503:in
`<top (required)>'
from ./bin/rdoc:18:in `require'
from ./bin/rdoc:18:in `<main>'
ソースコード中のlib/rubygems/specification.rbのL287の
def self._resort!
@@all.sort! { |a, b|
names = a.name <=> b.name
next names if names.nonzero?
を
def self._resort!
@@all.sort! { |a, b|
names = a.name <=> b.name
next names if names and names.nonzero?
とでもすれば、とりあえずmakeできますが、毎度これをするのは面倒なので、どなたか解決方法をご存じないでしょうか。
たぶんどこかにインストールしたgemの名前情報がシステムのどこかに保存されているせいだと推測しているのですが。以下のようにデバッグプリントすると
print "a.name = ", a.name, " b.name = ", b.name, "\n"
a.name = 1234567890 b.name = kramdown
というように出るので確かに1234567890が原因だとは思います(ちなみにkramdownはインストールされているgemの一つです)。ちなみにgem
listとしても1234567890は出力されません。なのでgem uninstallもできません。
どうぞよろしくお願いします。
畠山