[#35446] [Ruby 1.9 - Bug #4477][Open] Kernel:exec and backtick (`) don't work for certain system commands — Joachim Wuttke <j.wuttke@...>

10 messages 2011/03/07

[#35476] [Ruby 1.9 - Bug #4489][Open] [PATCH] Encodings with /-(unix|dos|mac)\Z/ — "James M. Lawrence" <quixoticsycophant@...>

20 messages 2011/03/10

[#35552] [Ruby 1.9 - Feature #4523][Open] Kernel#require to return the path of the loaded file — Alex Young <alex@...>

14 messages 2011/03/24

[#35565] [Ruby 1.9 - Feature #4531][Open] [PATCH 0/7] use poll() instead of select() in certain cases — Eric Wong <normalperson@...>

33 messages 2011/03/28

[#35566] [Ruby 1.9 - Feature #4532][Open] [PATCH] add IO#pread and IO#pwrite methods — Eric Wong <normalperson@...>

12 messages 2011/03/28

[#35586] [Ruby 1.9 - Feature #4538][Open] [PATCH (cleanup)] avoid unnecessary select() calls before doing I/O — Eric Wong <normalperson@...>

9 messages 2011/03/29

[ruby-core:35516] Re: Why has defined? been changed for autoloaded constants in 1.9?

From: Eric Hodel <[email protected]>
Date: 2011-03-17 21:21:24 UTC
List: ruby-core #35516
On Mar 17, 2011, at 2:14 AM, Nikolai Weibull wrote:

> Hi!
>=20
> Why has defined? been changed for autoloaded constants in 1.9?
>=20
> In 1.8 the following prints "constant":
>=20
> autoload :A, 'a'
> puts defined?(A)
>=20
> In 1.9 it prints nil.
>=20
> Why the change?  I can see how it makes sense, sort of, but I have a =
test for
>=20
> defined? ::Gem::Specification
>=20
> to test whether RubyGems has been loaded.
>=20
> How do I perform this test in 1.9?  (I could of course change the test
> to the less restrictive defined? ::Gem, but I want to know if there=92s
> a new way one should use for performing tests for loaded features like
> this one.)

Just check for Gem.

$ ruby -v -e 'p Object.const_defined?(:Gem)'
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.6.0]
true
$ ruby --disable-gems -v -e 'p Object.const_defined?(:Gem)'
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.6.0]
false


In This Thread