Hmmm … this seems like a perfect spot for forwardable.rb to me:
require “forwardable”
class Text
extend Forwardable
def initialize(component)
if(component <= 1)
@proxy = TextSingle.new
else
@proxy = TextMultiple.new
end
end
def_delegator(:@proxy, :meth)
class TextSingle
def meth
puts “I’m from TextSingle!”
end
end
class TextMultiple
def meth
puts “I’m from TextMultiple!”
end
end
end
···
At Tue, 27 Aug 2002 12:01:25 +0900, Tom Sawyer wrote:
this could work (i actually haven’t run it) but the problem is that the
type of the object returned is not Text, but TextSingle or TextMultiple.
i need it to be Text. eg.atext = Text.new(1)
p atext.class # → TextSinglefor it it needs to be:
p atext.class # → Text