[#11904] to_i,to_s の素朴な疑問 — HQss_YasuiS/hq_ss@...

30 messages 1999/02/04
[#11905] Re: to_i,to_s の素朴な疑問 — Masaki Fukushima <fukusima@...> 1999/02/04

福嶋です。

[#11915] Re: to_i,to_s の素朴な疑問 — HQss_YasuiS/hq_ss@... 1999/02/05
[#11917] Re: to_i,to_s の素朴な疑問 — Masaki Fukushima <fukusima@...> 1999/02/05

福嶋です。

[#11931] Re: to_i,to_s の素朴な疑問 — HQss_YasuiS/hq_ss@... 1999/02/05
[#11943] Re: to_i,to_s の素朴な疑問 — "INOUE Katsuyuki" <inoue@...> 1999/02/05

井上%といいます。

[#11980] Re: to_i,to_s の素朴な疑問 — HQss_YasuiS/hq_ss@... 1999/02/08

[#12000] how to make class? — "Kikutani, Makoto" <kikutani@...>

なんだかデータ変換で難しい話が続いているので、初心者の

53 messages 1999/02/10
[#12001] how to make class? — gotoken@... (GOTO Kentaro) 1999/02/10

ごとけんです

[#12002] What's DelegateClass ? (Re: how to make class?) — "Kikutani, Makoto" <kikutani@...> 1999/02/10

自分で始めたスレッドながらいきなりサブジェクトを変える奴。

[#12003] What's DelegateClass ? (Re: how to make class?) — gotoken@... (GOTO Kentaro) 1999/02/10

ごとけんです

[#12012] Re: What's DelegateClass ? (Re: how to make class?) — matz@... (Yukihiro Matsumoto) 1999/02/11

まつもと ゆきひろです

[#12017] Re: What's DelegateClass ? — Minero Aoki <aamine@...> 1999/02/11

あおきです。

[#12090] !=~ — "Kikutani, Makoto" <kikutani@...>

わははそうか、今まで =~ の否定は !=~ だと思っててて

42 messages 1999/02/15
[#12091] Re: !=~ — Yasuhiro Fukuma <yasuf@...> 1999/02/15

福間@福岡 です。

[#12092] Re: !=~ — ttate@... 1999/02/15

立石です。

[#12097] Re: !=~ — matz@... (Yukihiro Matsumoto) 1999/02/16

まつもと ゆきひろです

[#12099] Re: !=~ — gotoken@... (GOTO Kentaro) 1999/02/16

ごとけんです

[#12100] Re: !=~ — Kikutani Makoto <kikutani@...> 1999/02/16

Tue, Feb 16, 1999 at 10:40:46AM +0900 において

[#12101] Re: !=~ — gotoken@... (GOTO Kentaro) 1999/02/16

ごとけんです

[#12102] Re: !=~ — ttate@... 1999/02/16

立石です。

[#12103] Re: !=~ — gotoken@... (GOTO Kentaro) 1999/02/16

ごとけんです

[#12108] Re: !=~ — EGUCHI Osamu <eguchi@...> 1999/02/16

えぐち@エスアンドイー です。

[#12112] Re: !=~ — gotoken@... (GOTO Kentaro) 1999/02/16

ごとけんです

[#12116] Re: !=~ — EGUCHI Osamu <eguchi@...> 1999/02/16

えぐち@エスアンドイー です。

[#12122] Re: !=~ — gotoken@... (GOTO Kentaro) 1999/02/17

ごとけんです

[#12138] Re: !=~ — matz@... (Yukihiro Matsumoto) 1999/02/17

まつもと ゆきひろです

[#12156] Re: !=~ — EGUCHI Osamu <eguchi@...> 1999/02/18

えぐち@エスアンドイー です。

[#12157] Re: !=~ — matz@... (Yukihiro Matsumoto) 1999/02/18

まつもと ゆきひろです

[#12168] Re: !=~ — EGUCHI Osamu <eguchi@...> 1999/02/18

えぐち@エスアンドイー です。

[#12171] Re: !=~ — matz@... (Yukihiro Matsumoto) 1999/02/19

まつもと ゆきひろです

[#12117] INET client — "Kikutani, Makoto" <kikutani@...>

あおきさんのINET clientへの質問コーナー

51 messages 1999/02/16
[#12120] Re: INET client — "Kikutani, Makoto" <kikutani@...> 1999/02/16

Wed, Feb 17, 1999 at 02:24:11AM +0900 において

[#12183] ruby-mode + font-lock-mode — SONODA Yoshihide (園田 吉英) <ysonoda@...>

はじめまして、園田と申します。

21 messages 1999/02/19
[#12185] Re: ruby-mode + font-lock-mode — Shugo Maeda <shugo@...> 1999/02/19

前田です。

[#12188] Re: Meeting2000 リリースします — 松尾尚典 <matsuo_hisanori@...21.odn.ne.jp>

松尾です。

31 messages 1999/02/19
[#12245] Re: Meeting2000 リリースします — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/02/23

ruby-listの皆様,

[#12249] Re: Meeting2000 リリースします — matz@... (Yukihiro Matsumoto) 1999/02/23

まつもと ゆきひろです

[#12269] Re: Meeting2000 リリースします — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/02/23

ruby-listのみなさん,

[#12272] Re: Meeting2000 リリースします — Takahiro Maebashi <maebashi@...> 1999/02/23

前橋です。

[#12276] HTTP/1.1 client ( was Re: Meeting2000 リリースします ) — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/02/23

ruby-listのみなさん,

[#12521] http-access (HTTP/1.1 client) — Takahiro Maebashi <maebashi@...> 1999/03/03

前橋です。

[#12217] It wants to install mon_ruby — moochan <moochan@...>

moochanです。

27 messages 1999/02/22
[#12222] Re: It wants to install mon_ruby — Shugo Maeda <shugo@...> 1999/02/22

前田です。

[#12230] Re: It wants to install mon_ruby — moochan <moochan@...> 1999/02/23

moochanです.

[#12248] tempfile — Kikutani Makoto <kikutani@...>

tempファイルをよく作るのですが、

19 messages 1999/02/23

[#12301] Meeting2000-0_92 — Toshiki Komai <komai@...4u.or.jp>

29 messages 1999/02/23
[#12303] Re: Meeting2000-0_92 — hisanori@... 1999/02/24

松尾です。おはようございます。

[#12305] Re: Meeting2000-0_92 — Shin-ichiro Hara <sinara@...> 1999/02/24

原です。

[#12306] Re: Meeting2000-0_92 — hisanori@... 1999/02/24

From: Shin-ichiro Hara <sinara@blade.nagaokaut.ac.jp>

[#12307] Re: Meeting2000-0_92 — Shin-ichiro Hara <sinara@...> 1999/02/24

原です。

[#12310] Re: Meeting2000-0_92 — hisanori@... 1999/02/24

From: Shin-ichiro Hara <sinara@blade.nagaokaut.ac.jp>

[#12322] Re: Meeting2000-0_92 — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/02/24

ruby-listのみなさま, && なひ,と言います.

[#12309] [REQ] rlex.rb — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

44 messages 1999/02/24
[#12350] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/02/24

In message <199902231347.WAA00565.keiju@bc.mbn.or.jp>

[#12465] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/02/26

In message <199902241316.WAA03663@mail1.os.xaxon.ne.jp>

[#12466] Re: [REQ] rlex.rb — keiju@... (石塚圭樹 ) 1999/02/26

けいじゅ@日本ラショナルソフトウェアです.

[#12470] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/02/26

In message <199902261443.XAA10667.keiju@cupmail0.rational.com>

[#12497] Re: [REQ] rlex.rb — keiju@... (石塚圭樹 ) 1999/03/01

けいじゅ@日本ラショナルソフトウェアです.

[#12501] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/03/01

In message <199903010918.SAA16824.keiju@bc.mbn.or.jp>

[#12503] Re: [REQ] rlex.rb — keiju@... (石塚圭樹 ) 1999/03/01

けいじゅ@日本ラショナルソフトウェアです.

[#12511] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/03/02

In message <199903011352.WAA17487.keiju@bc.mbn.or.jp>

[#12526] Re: [REQ] rlex.rb — keiju@... (石塚圭樹 ) 1999/03/04

けいじゅ@日本ラショナルソフトウェアです.

[#12540] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/03/04

In message <199903040444.NAA21095.keiju@bc.mbn.or.jp>

[#12664] Re: [REQ] rlex.rb — keiju@... (石塚圭樹 ) 1999/03/09

けいじゅ@日本ラショナルソフトウェアです.

[#12691] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/03/09

In message <199903090457.NAA00259.keiju@bc.mbn.or.jp>

[#12719] Re: [REQ] rlex.rb — keiju@... (石塚圭樹 ) 1999/03/10

けいじゅ@日本ラショナルソフトウェアです.

[#12729] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/03/10

In message <199903091600.BAA02510.keiju@bc.mbn.or.jp>

[#12315] RE: (閑話) 「 XML 開発者の日」にて Ruby 紹介ありですね。 — 助田 雅紀 <masaki.suketa@...>

助田です.

13 messages 1999/02/24

[ruby-list:12047] Re: What's DelegateClass ?

From: Minero Aoki <aamine@...>
Date: 1999-02-12 08:51:40 UTC
List: ruby-list #12047
あおきです。

  In Mail "[ruby-list:12017] Re: What's DelegateClass ?"
    じぶん wrote:

> > |ですね,これは使いでがあるので何かドキュメントがあったほうが
> > |よいかも.
> > 
> > テクニカルライター募集中.^^;;;

> 応募(?)してもいいでしょうか。

とりあえず書いてみました。
-------------------------------------------------------------------
あおきみねろう@一橋大学
  mail to: aamine@dp.u-netsurf.ne.jp
  website: http://www1.u-netsurf.ne.jp/~brew/mine/

====================================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY text="#000000" bgcolor="#FFFFFF">

<HR>

<dl>
<dt><H1><a name="Delegator">Delegator</a></H1>
<dd> 
<P>
クラス階層とは関係なく、他のオブジェクトのインターフェイス・
実装を利用する(以下、delegate)ための抽象クラスです。
Delegatorクラスはオブジェクト単位のdelegateを行うためのクラス
なので、クラス単位でdelegateをするときには、DelegateClass
メソッドを使ってください。

ちなみに、このクラスには下位互換性のためにDelegaterという別名
があります。
</P>

<dt> <h2>スーパークラス:</h2>
<dd> 
<dl>
<dt><A HREF="Object.html"><code>Object</code></A>
</dl>
<dt> <h2>クラスメソッド:</h2>
<dd> 
<DL COMPACT>

<DT>
<A NAME="Delegator.new"><CODE>new([<VAR>obj</VAR>])</CODE></A>
<DD>
<p>
引数<code>obj</code>にはdelegateしたいオブジェクトを渡します。
下位クラスで<code>initialize</code>を再定義するときは必ず
<code>super</code>を呼びだす必要があります。
</p>
<p>
また、メソッドhash、eql?はdelegateされないので、Delegator
の下位クラスのインスタンスをHashのキーに使うときは、この
ふたつのメソッドを再定義してください。具体的には、
<blockquote><pre>
obj.eql? Delegator.new( obj )
obj.hash == Delegator.new( obj ).hash
</pre></blockquote>
の両方が成立する必要があります。
</p>
</DL>

<dt> <h2>メソッド:</h2>
<dd> 
<DL COMPACT>

<DT>
<a name="__getobj__">__getobj__</a>
<DD>
<p>
下位クラスでは目的にあわせてこのメソッドを再定義しなければ
いけません。このメソッドが再定義されないままだと、そのクラス
のメソッドが呼ばれたときに例外NotImplementErrorが発生します。
</p>

</DL>

<dt>用例:
<dd>
<blockquote><pre>
#!/usr/local/bin/ruby
require 'delegate'

class SimpleDelegator &#60 Delegator

  # SimpleDelegatorの定義そのまま。
  # 他に例が思いつかないところが苦しい

  def __getobj__
    @obj
  end

  def __setobj__( obj )
    @obj = obj
  end

  def initialize( obj )
    super
    __setobj__( obj )
  end
end

dele = SimpleDelegator.new( STDOUT )
dele.write 'this is from delegated STDOUT'  # STDOUTに出力される
</pre></blockquote>
</dl>
<HR>

<dl>
<dt><H1><a name="SimpleDelegator">SimpleDelegator</a></H1>
<dd> 
<P>
SimpleDeletatorクラスは、クラス作成時または__setobj__であたえた
オブジェクトのdelegateを行うクラスです。
</P>

<dt> <h2>スーパークラス:</h2>
<dd> 
<dl>
<dt> <A HREF="#Delegator"><code>Delegator</code></A>
</dl>
<dt> <h2>クラスメソッド:</h2>
<dd> 
<DL COMPACT>

<DT>
<A NAME="SimpleDelegator.new"><CODE>new([<VAR>obj</VAR>])</CODE></A>
<DD>
<p>
引数objにはその実装を利用したいオブジェクトを渡します。
</p>
</DL>

<dt> <h2>メソッド:</h2>
<dd> 
<DL COMPACT>

  __getobj__


<DT>
<a name="__getobj__">__getobj__</a>
<DD>
<p>
このクラスでは単にインスタンス変数に格納されているオブジェクトを
渡すだけです。
</p>

<DT>
<a name="__setobj__"><code>__setobj__(<var>obj</var>)</code></a>
<DD>
<p>
delegateを行うオブジェクトをobjに変更します。
</p>

</DL>

<dt>用例:
<dd>
<blockquote><pre>
#!/usr/local/bin/ruby
require 'delegate'
require 'socket'

class SMTPsocket &#60 SimpleDelegator

  def initialize( host = 'localhost', port = 25 )
    # 組みこみクラスでインスタンス変数が使える。
    # 現状で一番有効な利用法という話もある。
    @sock = TCPsocket.open( host, port )

    # 忘れてはいけない
    super( @sock )
  end

  # 定義をいろいろ書く…
end

</pre><blockquote>
</dl>

<HR>

<dl>
<dt><code>DelegateClass(<var>dele_class</var>)</code>
<dd> 
<P>
第一引数に与えられたクラスのクラスメソッド・メソッドを
ほぼ全て持った名無しクラスを新しく作ってそれを返します。
またそのクラスでは、必ずinitializeでdele_classのインス
タンスをsuperに渡さなければいけません。
</P>

<dt>用例
<dd>
<blockquote><pre>
#!/usr/local/bin/ruby
require 'delegate'

class NilArray &#60 DelegateClass( Array )
  def initialize
    super( [] )

    # Arrayは組みこみクラスなので今のところインスタンス
    # 変数は使えないが、Delegateされたクラスなら
    # インスタンス変数が使える
    @a = 1
  end

  def []( idx )
    # 常にnilをかえすように変更してみる
    return nil
  end
end

obj = NilArray.new( 3 )
p obj.type                         # Array
obj.push 1
p obj[ 0 ]                         # nil (ちゃんと変更されている)
p obj                              # [ 1 ]
p obj.pop                          # 1
</pre>
</blockquote>

</dl>
<HR>

</BODY>
</HTML>
===================================================================

In This Thread