[#539] A new discussion topic ;-) — Clemens Hintze <c.hintze@...>
Hi all,
[#546] Question concerning modules (1) — clemens.hintze@...
[#548] Bug: concerning Modules! — clemens.hintze@...
[#564] Ruby 1.3.7 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.7 is out, check out:
[#567] New feature request! :-) — clemens.hintze@...
On 6 Aug, Yukihiro Matsumoto wrote:
Hi,
On 6 Aug, Yukihiro Matsumoto wrote:
[#590] Bug in Array#clone! — clemens.hintze@...
Hi,
Hi,
[#600] A `File' is not a `IO'????? — clemens.hintze@...
Hi,
On 10 Aug, Yukihiro Matsumoto wrote:
Hi,
Hi,
Hi,
On 11 Aug, GOTO Kentaro wrote:
Hi,
On 11 Aug, Yukihiro Matsumoto wrote:
Hi,
[#607] How to pass by `new' method of superclass? — clemens.hintze@...
[#626] Next misbehavior (sorry :-) — clemens.hintze@...
Hi,
[#634] ANN: testsupp.rb 0.1 — Clemens Hintze <c.hintze@...>
Hi,
[#637] Backtrace of SIGSEGV — Clemens Hintze <c.hintze@...>
Hi,
Hi,
On 12 Aug, Yukihiro Matsumoto wrote:
Hi,
On 12 Aug, Yukihiro Matsumoto wrote:
Hi,
[#655] Your wish is fulfilled (erhm, almost ;-) — Clemens Hintze <c.hintze@...>
Hi Gotoken,
[#667] How do I use `callcc' — Clemens Hintze <c.hintze@...>
Hi,
[#668] Way to intercept method calls? — Clemens Hintze <c.hintze@...>
Hi,
[#679] Documentation about RD? — Clemens Hintze <c.hintze@...>
Hi,
=begin
On 18 Aug, Toshiro Kuwabara wrote:
Hi,
On 18 Aug, GOTO Kentaro wrote:
Hi,
On 19 Aug, Toshiro Kuwabara wrote:
Hi,
On 19 Aug, Toshiro Kuwabara wrote:
Hi,
Hi,
On 19 Aug, Toshiro Kuwabara wrote:
Hi
Hi,
Hi,
Hi Tosh and all,
Hi,
Hi,
Hi,
Hi,
Hi,
Hi,
Hi,
Hi,
Hi,
On 19 Aug, Yukihiro Matsumoto wrote:
Hi,
On 20 Aug, Toshiro Kuwabara wrote:
Hi,
On 21 Aug, Toshiro Kuwabara wrote:
Hi,
On 21 Aug, Toshiro Kuwabara wrote:
Hi,
Hi,
Hi,
On 24 Aug, Toshiro Kuwabara wrote:
Hi,
I thought people might be interested in this. Here's how I am plugging
On 31 Aug, Jonathan Aseltine wrote:
[#737] RD with multi charset — Minero Aoki <aamine@...>
Hi, I'm Minero Aoki. This is my first mail in this mailling list.
Hi,
Hi,
Hi,
Hi,
On 28 Aug, Minero Aoki wrote:
Hi,
[ruby-talk:00558] Re: Question concerning modules (1)
Hi,
Ruby's object.c contains following chart:
/*
* Ruby's Class Hierarchy Chart
*
* +------------------+
* | |
* Object---->(Object) |
* ^ ^ ^ ^ |
* | | | | |
* | | +-----+ +---------+ |
* | | | | |
* | +-----------+ | |
* | | | | |
* +------+ | Module--->(Module) |
* | | ^ ^ |
* OtherClass-->(OtherClass) | | |
* | | |
* Class---->(Class) |
* ^ |
* | |
* +----------------+
*
* + All metaclasses are instances of the class `Class'.
*/
Holizontal arrow denotes `class object --> (metaclass object)'
relation.
Follow this chart, I'll express module object as Foo, and it's
metaclass object as (Foo). And in this article `-->' also denotes
instance object --> class object relationship, as follows:
aFoo --> Foo --> (Foo)
instance class-obj metaclass-obj
In fact, these two `-->'s are also denotes instance --> class
relation. Now I try to explain the phenomena.
From: Clemens Hintze <c.hintze@gmx.net>
Subject: [ruby-talk:00556] Re: Question concerning modules (1)
Date: Wed, 4 Aug 1999 08:13:02 +0200
> >> rbc0> Foo.instance_variables.include? "@ivar"
> >> true
> >>
> >> # Aha! `Foo' contains the instance variable.
> >
> >Yes. But it's not instance variable of Foo's instance.
>
> Eh! That I don't fully understand! If it is not instance variable of
> `Foo's instance, whose instance variable it is? :-////
In this case, objects are releted as follows:
aFoo --> Foo --> (Foo)
instance module metaclass
I ment that @ivar is not aFoo's variable, but Foo's variable.
NOTE: Foo.methods returns Foo's methods, and Foo.instance_methods
returns aFoo's methods.
> >
> >Cause foo's (singleton) class is extended by Foo, foo has the method `show'.
> >
>
> But why has this methods mutated to module functions? `Foo' is a
> singleton class; not an instance, right? That is also true for `foo'.
> If I extend a `Class' with features of a `Module', why I can use
> these features like class methods/module functions?
By `foo.extend Foo', foo is extended to have Foo's instance methods as
foo's methods, because now foo is an instance of Foo like aFoo. This
case is as follows:
aFoo --> Foo --> (Foo)
afoo --> foo --> (foo)
[again]
> But why has this methods mutated to module functions? `Foo' is a
> singleton class; not an instance, right? That is also true for `foo'.
Yes, foo is a afoo's class (in this case, it's not called singleton
maybe). And, foo is a instance of Foo either. Strictry speaking,
foo's class (foo) has Foo as a ancestor of (foo).
NOTE?: I beliave, `singleton class' is a class of one object, that
isn't a class of any other object. I believe, metaclass is always
singleton class.
[again]
> If I extend a `Class' with features of a `Module', why I can use
> these features like class methods/module functions?
You unexpectedly extended `Class's class.
You can use Module#include, Module#append_features(module_or_class),
for such use.
# module_or_*class* !, I didn't know that !! class's feature could
# be appended !!! :-)
> >Hope this helps,
>
> Much, but not enough ;-)
This is the limit of my ability. If you need further help, matz or
gotoken or shugo or ... will help us ;-p
--
sorry for my broken english
best regards
Kazuhiro HIWADA (hiwada@kuee.kyoto-u.ac.jp)