Here's a small snippet of code I'm trying to hack on:
module Mod1
class A
def meth
puts "in Mod 1"
end
end
class B
def initialize
A.new.meth
end
end
end
module Mod2
class A < Mod1::A
def meth
put "in Mod 2"
end
end
class B < Mod1::B
end
end
p Mod1::B.new
p Mod2::B.new
caleb@tcdevel ~ $ ruby testit.rb
in Mod 1
#<Mod1:0xb7c888dc>
in Mod 1
#<Mod2:0xb7c88508>
What I'm trying to accomplish is having B reference A but in the same module
its currently in. I can accomplish this by redefining the initialize method
again in Mod2::B, such that it looks exactly the same as Mod1::B, but I'm
hoping to find a trick to avoid having to do that.
Here's a small snippet of code I'm trying to hack on:
<snip due to ruby-forum.com quote limit />
What I'm trying to accomplish is having B reference A but in the same
module
its currently in. I can accomplish this by redefining the initialize
method
again in Mod2::B, such that it looks exactly the same as Mod1::B, but
I'm
hoping to find a trick to avoid having to do that.
Any thoughts?
You could use #const_get, possibly, since a method call is dynamic.
module M2
A = M1::A
class A; def bar; "bar"; end; end
end
a = M2::A
a.foo #=> "foo"
a.bar #=> "bar"
Is that what you meant?
However, note that:
M2::A == M1::A
"Caleb Tennis" <caleb@aei-tech.com> wrote in message
news:200512141601.46013.caleb@aei-tech.com...
···
Here's a small snippet of code I'm trying to hack on:
module Mod1
class A
def meth
puts "in Mod 1"
end
end
class B
def initialize
A.new.meth
end
end
end
module Mod2
class A < Mod1::A
def meth
put "in Mod 2"
end
end
class B < Mod1::B
end
end
p Mod1::B.new
p Mod2::B.new
caleb@tcdevel ~ $ ruby testit.rb
in Mod 1
#<Mod1:0xb7c888dc>
in Mod 1
#<Mod2:0xb7c88508>
What I'm trying to accomplish is having B reference A but in the same
module
its currently in. I can accomplish this by redefining the initialize
method
again in Mod2::B, such that it looks exactly the same as Mod1::B, but I'm
hoping to find a trick to avoid having to do that.