るりまサーチ

最速Rubyリファレンスマニュアル検索!
44件ヒット [1-44件を表示] (0.168秒)

別のキーワード

  1. mutex_m extend_object
  2. json extend
  3. irb/extend-command def_extend_command
  4. irb/extend-command install_extend_commands
  5. module extend_object

ライブラリ

クラス

モジュール

キーワード

検索結果

Module#extend_object(obj) -> object (24226.0)

Object#extend の実体です。オブジェクトにモジュールの機能を追加します。

...Object#extend の実体です。オブジェクトにモジュールの機能を追加します。

Object#extend は、Ruby で書くと以下のように定義できます。

//emlist[例][ruby]{
def extend(*modules)
modules.reverse_each do |mod|
# extend_object や extended はプライ...
...ベートメソッドなので
# 直接 mod.extend_object(self) などとは書けない
mod.__send__(:extend_object, self)
mod.__send__(:extended, self)
end
end
//}

extend_object
のデフォルトの実装では、self に定義されて
いるインスタンスメソッドを obj...
...の特異メソッドとして追加します。

@param obj self の機能を追加するオブジェクトを指定します。

@return obj で指定されたオブジェクトを返します。

@see Module#extended...

Mutex_m#mu_extended -> Mutex (6117.0)

Mutex_m.extend_object から呼び出されます。 ユーザが直接使うことはありません。

...Mutex_m.extend_object から呼び出されます。
ユーザが直接使うことはありません。...

Module#extended(obj) -> () (6107.0)

self が他のオブジェクト に Object#extend されたときに 呼ばれます。引数には extend を行ったオブジェクトが渡されます。

...ect#extend されたときに
呼ばれます。引数には extend を行ったオブジェクトが渡されます。

@param obj Object#extend を行ったオブジェクト

//emlist[例][ruby]{
module Foo
def self.extended(obj)
p "#{obj} extend #{self}"
end
end

Object.new.extend Foo

#...
...=> "#<Object:0x401cbc3c> extend Foo"
//}

@see Module#extend_object...

Object#extend(*modules) -> self (6107.0)

引数で指定したモジュールのインスタンスメソッドを self の特異 メソッドとして追加します。

...nclude は、クラス(のインスタンス)に機能を追加します
が、extend は、ある特定のオブジェクトだけにモジュールの機能を追加
したいときに使用します。

引数に複数のモジュールを指定した場合、最後
の引数から逆順に exten...
...可)。
@return self を返します。

//emlist[][ruby]{
module Foo
def a
'ok Foo'
end
end

module Bar
def b
'ok Bar'
end
end

obj = Object.new
obj.extend Foo, Bar
p obj.a #=> "ok Foo"
p obj.b #=> "ok Bar"

class Klass
include Foo
extend Bar
end

p Klass.new.a #=> "ok Foo"
p...
.../}

extend の機能は、「特異クラスに対する Module#include」
と言い替えることもできます。
ただしその場合、フック用のメソッド
が Module#extended ではなく Module#included になるという違いがあります。

//emlist[][ruby]{
# obj.extend Foo, B...