Thanks, Aleksi, and thanks, Dave.

Yes, I see that later methods replace earlier ones. I should
have seen that without even asking.

I suppose if one *knows* about a name clash, one can do an
alias in between the includes.

As for terminology: I think that what Ruby does is the same
as what Conway calls "interface polymorphism." It just differs
from one language to another, and Ruby is the most dynamic
language I have ever worked with (as far as I can recall).

I do see that methods and attributes can be added and redefined
at runtime in classes and objects. But understanding it and
living it are perhaps different things.

Of course, in my mind, type compatibility is a big part of what
polymorphism is about. But that is really not an issue in Ruby.

Maybe if all OOP languages were dynamic, we would never have
come up with the term "polymorphism." Maybe we would think of
all objects as being "amorphous" and mutable.

By the way:

I have not given up on the idea of implementing a DBC module in
Ruby. But every time I get into it, it makes my brain itch. I
want to (have to!) make the conditions heritable, but I want to
make it easy to use as well...

Hal

--
Hal Fulton


Sent via Deja.com http://www.deja.com/
Before you buy.