class SimpleDelegator + Delegator
クラスの継承リスト: SimpleDelegator < Delegator < Object < Kernel < BasicObject
要約
Delegator クラスを継承し、シンプルなメソッド委譲を実現した具象クラス。
委譲先に指定されたオブジェクトへメソッドの実行を委譲します。
例:
require 'delegate' foo = Object.new def foo.test p 25 end foo2 = SimpleDelegator.new(foo) foo2.test # => 25
特異メソッド
new(obj) -> object
-
メソッドを委譲するオブジェクトの設定と、 メソッド委譲を行うためのクラスメソッドの定義を行います。
- [PARAM] obj:
- 委譲先のオブジェクト
[SEE_ALSO] Delegator.new
インスタンスメソッド
! -> bool
-
自身を否定します。
self != obj -> bool
-
自身が与えられたオブジェクトと等しくない場合は、真を返します。 そうでない場合は、偽を返します。
- [PARAM] obj:
- 比較対象のオブジェクトを指定します。
self == obj -> bool
-
自身が与えられたオブジェクトと等しい場合は、真を返します。 そうでない場合は、偽を返します。
- [PARAM] obj:
- 比較対象のオブジェクトを指定します。
__getobj__ -> object
-
委譲先のオブジェクトを返します。
[SEE_ALSO] Delegator#__getobj__
__getobj__ -> object
-
委譲先のオブジェクトを返します。
本メソッドは、サブクラスで再定義する必要があり、 デフォルトでは NotImplementedError が発生します。
- [EXCEPTION] NotImplementedError:
- サブクラスにて本メソッドが再定義されていない場合に発生します。
__setobj__(obj) -> object
-
委譲先のオブジェクトを obj に変更します。
メソッド委譲を行うためのクラスメソッドの再定義は行われないことに注意してください。 メソッド委譲を行うためのクラスメソッドの定義は生成時にのみ行われます。 そのため、以前の委譲先オブジェクトと obj の間で呼び出せるメソッドに違いがあった場合は、 何かしらの可能性が発生する可能性があります。
- [PARAM] obj:
- 委譲先のオブジェクト
- [RETURN]
- 変更後の委譲先オブジェクト
__setobj__(obj) -> object
-
委譲先のオブジェクトをセットします。
- [PARAM] obj:
- 委譲先ののオブジェクトを指定します。
- [EXCEPTION] NotImplementedError:
- サブクラスにて本メソッドが再定義されていない場合に発生します。
freeze -> self
-
自身を凍結します。
[SEE_ALSO] Object#freeze
marshal_dump -> object
-
シリアライゼーションをサポートするためにDelegator#__getobj__ が返すオブジェクトを返します。
marshal_load(obj) -> object
-
シリアライズされたオブジェクトから、Delegator#__getobj__ が返すオブジェクトを再現します。
- [PARAM] obj:
- Delegator#marshal_dumpの戻り値のコピー
method_missing(m, *args) -> object
-
渡されたメソッド名と引数を使って、Delegator#__getobj__ が返すオブジェクトへメソッド委譲を行います。
- [PARAM] m:
- メソッドの名前(シンボル)
- [PARAM] args:
- メソッドに渡された引数
- [RETURN]
- 委譲先のメソッドからの返り値
[SEE_ALSO] BasicObject#method_missing
methods -> [Symbol]
-
そのオブジェクトに対して呼び出せるメソッド名の一覧を返します。 このメソッドは public メソッドおよび protected メソッドの名前を返します。
[SEE_ALSO] Object#methods
protected_methods(all = true) -> [Symbol]
-
そのオブジェクトが理解できる protected メソッド名の一覧を返します。
- [PARAM] all:
- 偽を指定すると __getobj__ のスーパークラスで定義されたメソッドを除きます。
[SEE_ALSO] Object#protected_methods
public_methods(all = true) -> [Symbol]
-
そのオブジェクトが理解できる public メソッド名の一覧を返します。
- [PARAM] all:
- 偽を指定すると __getobj__ のスーパークラスで定義されたメソッドを除きます。
[SEE_ALSO] Object#public_methods
respond_to?(m) -> bool
-
Delegator#__getobj__ が返すオブジェクトが メソッド m を持つとき真を返します。
- [PARAM] m:
- メソッド名
[SEE_ALSO] Object#respond_to?
respond_to_missing?(m, include_private) -> bool
-
- [PARAM] m:
- メソッド名を指定します。
- [PARAM] include_private:
- 真を指定すると private メソッドも調べます。