[#33169] a cool Ruby script. — Yuji Asakawa <namu@...>

21 messages 2002/01/05

[#33229] ruby のインストールがうまくいかない — satoshi SAKAI <gau_sato@...9.dion.ne.jp>

はじめまして。

25 messages 2002/01/08
[#33230] Re: ruby のインストールがうまくいかない — shukaku@... 2002/01/08

At Tue, 8 Jan 2002 19:58:55 +0900,

[#33231] Re: ruby のインストールがうまくいかない — satoshi SAKAI <gau_sato@...9.dion.ne.jp> 2002/01/08

サカイです。

[#33233] Re: ruby のインストールがうまくいかない — nobu.nakada@... 2002/01/08

なかだです。

[#33254] Re: ruby のインストールがうまくいかない — satoshi SAKAI <gau_sato@...9.dion.ne.jp> 2002/01/09

サカイです。

[#33255] Re: ruby のインストールがうまくいかない — rubikitch <rubikitch@...> 2002/01/09

From: satoshi SAKAI <gau_sato@d9.dion.ne.jp>

[#33256] Re: ruby のインストールがうまくいかない — IWAOKA Masahiro <iwaoka@...> 2002/01/09

In the message <20020109102738.TQIO11600.femail11.im.home.ne.jp@witch>,

[#33235] " 差分ベースモジュール " in Ruby — Taku Nakajima <tnakajima@...>

中島@ブレーンです。

30 messages 2002/01/09
[#33238] Re: " 差分ベースモジュール " in Ruby — TADA Tadashi <sho@...> 2002/01/09

ただただしです。

[#33240] Re: " 差分ベースモジュール " in Ruby — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2002/01/09

Toshです。

[#33241] Re: " 差分ベースモジュール " in Ruby — Tanaka Akira <akr@...17n.org> 2002/01/09

In article <A5EF3ECC-04BE-11D6-B67B-003065DC8B1C@yb3.so-net.ne.jp>,

[#33243] Re: " 差分ベースモジュール " in Ruby — Tanaka Akira <akr@...17n.org> 2002/01/09

In article <hvoell014rl.fsf@coulee.a02.aist.go.jp>,

[#33244] Re: " 差分ベースモジュール " in Ruby — matz@... (Yukihiro Matsumoto) 2002/01/09

まつもと ゆきひろです

[#33249] Re: " 差分ベースモジュール " in Ruby — Tanaka Akira <akr@...17n.org> 2002/01/09

In article <1010559765.279084.16212.nullmailer@ev.netlab.jp>,

[#33251] Re: " 差分ベースモジュール " in Ruby — matz@... (Yukihiro Matsumoto) 2002/01/09

まつもと ゆきひろです

[#33252] Re: " 差分ベースモジュール " in Ruby — Tanaka Akira <akr@...17n.org> 2002/01/09

In article <1010566232.053696.16272.nullmailer@ev.netlab.jp>,

[#33346] IPSocket.getaddress — "Sadayuki Sakamoto" <sakacom@...>

酒本です。

16 messages 2002/01/13

[#33416] No such file to load -- dbm — satoshi SAKAI <gau_sato@...9.dion.ne.jp>

サカイと言います。(以前もお世話になりました。)

13 messages 2002/01/17

[#33462] Re: Mysql/Ruby のコンパイル — "井上 浩一" <kyoui32@...>

井上です。

34 messages 2002/01/21
[#33463] Re: Mysql/Ruby のコンパイル — HIDAKA Takahiro <cv8t-hdk@...> 2002/01/21

 ひだかです。

[#33464] Re: Mysql/Ruby のコンパイル — nobu.nakada@... 2002/01/21

なかだです。

[#33465] Re: Mysql/Ruby のコンパイル — HIDAKA Takahiro <cv8t-hdk@...> 2002/01/21

 ひだかです。

[#33466] Re: Mysql/Ruby のコンパイル — nobu.nakada@... 2002/01/21

なかだです。

[#33467] Re: Mysql/Ruby のコンパイル — HIDAKA Takahiro <cv8t-hdk@...> 2002/01/21

 ひだかです。

[#33468] Re: Mysql/Ruby のコンパイル — nobu.nakada@... 2002/01/21

なかだです。

[#33471] Re: Mysql/Ruby のコンパイル — HIDAKA Takahiro <cv8t-hdk@...> 2002/01/22

 ひだかです。

[#33473] Re: Mysql/Ruby のコンパイル — nobu.nakada@... 2002/01/22

なかだです。

[#33474] Re: Mysql/Ruby のコンパイル — HIDAKA Takahiro <cv8t-hdk@...> 2002/01/22

 ひだかです。

[#33486] Re: Mysql/Ruby のコンパイル — "TAMURA.KENICHI" <sgs02516@...> 2002/01/22

たむらです。

[#33487] Re: Mysql/Ruby のコンパイル — nobu.nakada@... 2002/01/22

なかだです。

[#33488] Re: Mysql/Ruby のコンパイル — "TAMURA.KENICHI" <sgs02516@...> 2002/01/22

たむらです。

[#33477] about nest class — sheepman <sheepman@...>

こんにちは

21 messages 2002/01/22
[#33478] Re: about nest class — matz@... (Yukihiro Matsumoto) 2002/01/22

まつもと ゆきひろです

[#33517] [BUG] Can't compile ruby on Solaris2.6 — IWAMURO Motonori <iwa@...>

岩室です。

17 messages 2002/01/25
[#33518] Re: [BUG] Can't compile ruby on Solaris2.6 — matz@... (Yukihiro Matsumoto) 2002/01/25

まつもと ゆきひろです

[#33535] broken symbolic link and File::mtime — Go Nakagawa <nakagawa@...>

中川といいます。

37 messages 2002/01/25
[#33545] Re: broken symbolic link and File::mtime — matz@... (Yukihiro Matsumoto) 2002/01/25

まつもと ゆきひろです

[#33560] Re: broken symbolic link and File::mtime — Takahiro Kambe <taca@...> 2002/01/27

In message <1012002148.661980.9788.nullmailer@ev.netlab.jp>

[#33563] Re: broken symbolic link and File::mtime — Kazuhiro NISHIYAMA <zn@...> 2002/01/27

西山和広です。

[#33564] Re: broken symbolic link and File::mtime — Takahiro Kambe <taca@...> 2002/01/27

In message <20020127213735.2369.ZN@mbf.nifty.com>

[#33575] Re: broken symbolic link and File::mtime — Kazuhiro NISHIYAMA <zn@...> 2002/01/28

西山和広です。

[#33581] Re: broken symbolic link and File::mtime — matz@... (Yukihiro Matsumoto) 2002/01/28

まつもと ゆきひろです

[#33584] Re: broken symbolic link and File::mtime — Tanaka Akira <akr@...17n.org> 2002/01/28

In article <1012194192.456224.19148.nullmailer@ev.netlab.jp>,

[#33587] Re: broken symbolic link and File::mtime — matz@... (Yukihiro Matsumoto) 2002/01/28

まつもと ゆきひろです

[#33588] Re: broken symbolic link and File::mtime — Tanaka Akira <akr@...17n.org> 2002/01/28

In article <1012208486.646506.19793.nullmailer@ev.netlab.jp>,

[#33590] Re: broken symbolic link and File::mtime — matz@... (Yukihiro Matsumoto) 2002/01/28

まつもと ゆきひろです

[#33591] Re: broken symbolic link and File::mtime — Tanaka Akira <akr@...17n.org> 2002/01/28

In article <1012212090.162851.19949.nullmailer@ev.netlab.jp>,

[#33595] Re: broken symbolic link and File::mtime — matz@... (Yukihiro Matsumoto) 2002/01/28

まつもと ゆきひろです

[#33664] rd2 コマンド( RDtool )が動かない。 — Seiji Yoneda <yoneda@...>

米田と申します。はじめて投稿します。

24 messages 2002/01/30
[#33667] Re: rd2 コマンド( RDtool )が動かない。 — ARIMA Yasuhiro <fit0298@...> 2002/01/30

有馬です。

[ruby-list:33326] [ 質問 ] クラスメソッドのモジュールによる実現方法

From: Hiroyuki Komatsu <komatsu@...>
Date: 2002-01-12 02:56:18 UTC
List: ruby-list #33326
小松と申します. はじめまして.

クラスメソッドをモジュールによって実現は可能でしょうか?
背景は以下の通りです.

1). 複数の既存のクラスに共通のクラスメソッドを実装したい. (Code 1)
2). 対象となるクラスに共通するスーパークラスをいじるのは
    あまりしたくない.  (Code 2)
3). Module による mixin が回答になりそうだが, モジュールによる
    クラスメソッドの定義方法が分からない. (Code 3)

「モジュールを mixin しているすべてのクラスが同じモジュールを
参照している」と理解しているので, おそらく実現は無理なんじゃないかなと
思っていますが, その場合どうするのがよい方法でしょうか?


                                                            小松弘幸
                                                -----------------------
                                                   http://taiyaki.org/


---- Code 1 ----
## 複数の既存のクラスに共通のクラスメソッドを実装したい.
class ClassA
  @@actives = []

  def ClassA::actives
    @@actives
  end

  def actives
    @@actives
  end
  
  def activate
    @@actives.push (self)
  end
  def deactivate
    @@actives.delete (self)
  end

  # Do something
end

class ClassB
  # Similar to ClassA
  @@actives = []

  def ClassA::actives
    @@actives
  end

  def actives
    @@actives
  end
  
  def activate
    @@actives.push (self)
  end
  def deactivate
    @@actives.delete (self)
  end

  # Do something
end

a1 = ClassA.new; a1.activate
a2 = ClassA.new; a2.activate
b1 = ClassB.new; b1.activate
b2 = ClassB.new; b2.activate

p ClassA::actives
a1.deactivate
p ClassA::actives

p b1.actives
#### Result: 
## ~% ruby ./code1.rb
## [#<ClassA:0x402626a8>, #<ClassA:0x402625e0>]
## [#<ClassA:0x402625e0>]
## [#<ClassB:0x40262310>, #<ClassB:0x40262220>]
----

---- Code 2 ----
## 対象となるクラスに共通するスーパークラスをいじるのは
## あまりしたくない.
class Object
  @@actives = {}

  def Object::actives
    @@actives[name]
  end

  def actives
    @@actives[self.class.to_s]
  end

  def activate
    if @@actives[self.class.to_s].nil? then
      @@actives[self.class.to_s] = [self]
    else
      @@actives[self.class.to_s].push (self)
    end
  end
  def deactivate
    if ! @@actives[self.class.to_s].nil? then
      @@actives[self.class.to_s].delete (self)
    end
  end
end

class ClassA
  # Do something
end
class ClassB
  # Do something
end

a1 = ClassA.new; a1.activate
a2 = ClassA.new; a2.activate
b1 = ClassB.new; b1.activate
b2 = ClassB.new; b2.activate

p ClassA::actives
a1.deactivate
p ClassA::actives

p b1.actives

#### Result: 
## ~% ruby ./code2.rb
## [#<ClassA:0x402626a8>, #<ClassA:0x402625e0>]
## [#<ClassA:0x402625e0>]
## [#<ClassB:0x40262310>, #<ClassB:0x40262220>]
----

---- Code 3 ----
## Module による mixin が回答になりそうだが, モジュールによる
## クラスメソッドの定義方法が分からない.

module M1
  def M1::print2
    puts "print2"
  end

  def print2
    puts "print2"
  end
end

class C1
  include M1

  def C1::print
    puts "print1"
  end
end

c = C1.new
C1::print
C1::print2

#### Result:
##
## ~% ruby ./code3.rb
## Class
## ./code3.rb:17: undefined method `print2' for C1:Class (NameError)

-----




In This Thread

Prev Next