(2011/12/27 21:22), Nobuyoshi Nakada wrote:
> ただし、Aの解決時に例外が起きても無視しなくなっているという違いが残って
> います。具体的には、defined?(raise::A)が1.8まではnilになるのに対して、
> 1.9以降では例外になります。

やっと理解しました。

% ruby187 -e 'defined?(raise::Foo)'
% ruby -e 'defined?(raise::Foo)'
-e:1:in `<main>': unhandled exception

元に戻ると、

if defined? OpenSSL::Random

は、OpenSSLという定数が存在していなくても、例えば

if defined? NO_SUCH_CONST::FOO::BAR

等と同様、例外を上げたりしないことを期待しているということですね。

securerandom.rb絡みのテスト失敗は、これを直せばなくなるとして、net/http
やnet/smtpのテストはどうしましょうかね。