[#3109] Is divmod dangerous? — Dave Thomas <Dave@...>

14 messages 2000/06/06

[#3149] Retrieving the hostname and port in net/http — Roland Jesse <jesse@...>

Hi,

12 messages 2000/06/07

[#3222] Ruby coding standard? — Robert Feldt <feldt@...>

16 messages 2000/06/09

[#3277] Re: BUG or something? — Aleksi Niemel<aleksi.niemela@...>

> |I am new to Ruby and this brings up a question I have had

17 messages 2000/06/12
[#3281] Re: BUG or something? — Dave Thomas <Dave@...> 2000/06/12

Aleksi Niemel<aleksi.niemela@cinnober.com> writes:

[#3296] RE: about documentation — Aleksi Niemel<aleksi.niemela@...>

> I want to contribute to the ruby project in my spare time.

15 messages 2000/06/12

[#3407] Waffling between Python and Ruby — "Warren Postma" <embed@...>

I was looking at the Ruby editor/IDE for windows and was disappointed with

19 messages 2000/06/14

[#3410] Exercice: Translate into Ruby :-) — Jilani Khaldi <jilanik@...>

Hi All,

17 messages 2000/06/14

[#3415] Re: Waffling between Python and Ruby — Andrew Hunt <andy@...>

>Static typing..., hmm,...

11 messages 2000/06/14

[#3453] Re: Static Typing( Was: Waffling between Python and Ruby) — Andrew Hunt <andy@...>

32 messages 2000/06/16

[#3516] Deep copy? — Hugh Sasse Staff Elec Eng <hgs@...>

Given that I cannot overload =, how should I go about ensuring a deep

20 messages 2000/06/19

[#3694] Why it's quiet — hal9000@...

We are all busy learning the new language

26 messages 2000/06/29
[#3703] Re: Why it's quiet — "NAKAMURA, Hiroshi" <nahi@...> 2000/06/30

Hi,

[#3705] Re: Why it's quiet — matz@... (Yukihiro Matsumoto) 2000/06/30

Hi,

[ruby-talk:03608] Re: Interface polymorphism

From: matz@... (Yukihiro Matsumoto)
Date: 2000-06-22 04:25:08 UTC
List: ruby-talk #3608
Hi,

In message "[ruby-talk:03588] Interface polymorphism"
    on 00/06/21, hal9000@hypermetrics.com <hal9000@hypermetrics.com> writes:

|In his book _Object-Oriented Perl_, Damian Conway discusses
|what he calls "interface polymorphism" (as distinguished
|from inheritance polymorphism). Basically as long as two
|objects both implement the method needed at the moment, no
|ancestor relationship need exist between the objects.

|I immediately thought of Ruby's "mix-in" capability (and
|the method_missing method). I think this is certainly an
|example of what Conway was talking about.

Well, Mix-in is not a "interface polymorphism", it's a variation of
"inheritance polymorphism".

An example of "interface polymorphism" is Enumerable module, which
requires a mixing class to have `each' method and that's all.  No
inheritance relation is needed.

|For that matter, I am not sure how Ruby handles name clashes --
|i.e., names defined in more than one included module. I suppose
|you simply use the fully qualified name?

No special way to resolve name class is provided for Ruby.  Just two:

  1) alias

     to prepare alias to the original

  2) override

     since Mix-in is an inheritance, usual override rule for method
     combination is applicable.

							matz.

In This Thread