[#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:03556] Re: Ruby classes and inheritance

From: "NAKAMURA, Hiroshi" <nakahiro@...>
Date: 2000-06-20 12:17:28 UTC
List: ruby-talk #3556
Hi,

> From: dave@thomases.com [mailto:dave@thomases.com]
> Sent: Tuesday, June 20, 2000 10:30 AM

> However, it's fun to think about implementing abstract base classes,
> just to see how it could be handled.

It is very fun.  I used to consider how can I show the interface of
my library explicitly.

  % ruby -r myclass -e 'p MyClass.instance_methods.sort' | Mail -s \
  "This is it!" customer@somewhere.com

Now I can do;

  % cat myinterface.rb | Mail ...

:-)

>     class Module
>       def abstract(*names)
>         for name in names
>           class_eval %{def #{name}(*a)
>                          raise NotImplementError, "#{name} not implemented"
>                        end}
>         end
>       end
>     end

Some "name.id2name" required?

// NaHi


class Module
  def abstract(*ids)
    for id in ids
      name = id.id2name
      class_eval %{def #{name}(*a)
        raise NotImplementError, "#{name} not implemented"
      end}
    end
  end

  alias implements include
end
  
module Stack
  abstract :push, :pop
end

class ConcreteStack; implements Stack
end

ConcreteStack.new.push

In This Thread