a class that looks like (kind_of?) several classes

E

Eric Mahurin

Is there a way to make a class that looks like several classes?
For example:

class IOArray < IO
include Array # doesn't work because Array is not a Module
# use IO methods calls to accomplish the Array methods
end

I don't need multiple inheritance. All I want is these
additional classes to appear in the ancestors list. In the
above example, IOArray could act like an IO or an Array. It
looks like evil.rb might have a solution, but is there a
non-evil way?




__________________________________
Do you Yahoo!?
Yahoo! Mail - Helps protect you from nasty viruses.
http://promotions.yahoo.com/new_mail
 
R

Robert Klemme

Eric said:
Is there a way to make a class that looks like several classes?
For example:

class IOArray < IO
include Array # doesn't work because Array is not a Module
# use IO methods calls to accomplish the Array methods
end

I don't need multiple inheritance. All I want is these
additional classes to appear in the ancestors list. In the
above example, IOArray could act like an IO or an Array. It
looks like evil.rb might have a solution, but is there a
non-evil way?

class IOArray < IO
def kind_of?(cl)
Array == cl || super
end
end
=> true

But seriously, for what do you need that? I can't think of an application
where I would want to make something look like an Array without being one.
Maybe it's rather Enumerable that you want?

Kind regards

robert
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,438
Messages
2,571,699
Members
48,796
Latest member
Greg L.
Top