module Foo
def display
puts self.class::A
end
end
class Bar
A = 5
include Foo
end
class Baz
A = 6
include Foo
end
Bar.new.display
Baz.new.display
Anything cleaner-looking than self.class::Constant to access the
constant from a method defined in the module?
martin
Martin DeMello wrote:
constant from a method defined in the module?
martin
Here’s a trick I use to beautify access to constants:
class Object
def my
self.class
end
end
…Now all constants can be accessed with my::Constant.
I find it more readable. Certainly less typing!
Cheers,
Tom A.
On 11/9/06, Tom A. [email protected] wrote:
I find it more readable. Certainly less typing!
Ah - nice!
martin
Martin DeMello wrote:
…Now all constants can be accessed with my::Constant.
I find it more readable. Certainly less typing!
Ah - nice!
This may be a corner case, but if you’re going to define #my at the
instance level, it should probably be based on the
(singleton|eigen)class of the instance and not the “birth” class:
class Object
def my
self.class
#class << self; self; end
end
end
class Foo
C = 2
end
x = Foo.new
class << x
X = 3
end
p x.my::C
p x.my::X
Now try it with the alternative!