るりまサーチ

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

別のキーワード

  1. object yield_self
  2. _builtin yield_self
  3. _builtin self
  4. tracepoint self
  5. codeobject document_self

ライブラリ

キーワード

検索結果

Module#include(*mod) -> self (18300.0)

モジュール mod をインクルードします。

...ます。

@
param mod Module のインスタンス( Enumerable など)を指定します。

@
raise ArgumentError 継承関係が循環してしまうような include を行った場合に発生します。

//emlist[例][ruby]{
module
M
end
module
M2
include
M
end
module
M
include
M2
end
//}...
...実行結果:

-:3:in `append_features': cyclic include detected (ArgumentError)
from -:3:in `include'
from -:3


インクルードとは、指定されたモジュールの定義
(メソッド、定数) を引き継ぐことです。
インクルードは多重継承の代わ...
...りに用いられており、 mix-in とも呼びます。

//emlist[例][ruby]{
class
C
include
FileTest
include
Math
end

p C.ancestors

# => [C, Math, FileTest, Object, Kernel]
//}

モジュールの機能追加は、クラスの継承関係の間にそのモジュールが挿入
される...

Module#included(class_or_module) -> () (6295.0)

self が Module#include されたときに対象のクラスまたはモジュー ルを引数にしてインタプリタがこのメソッドを呼び出します。

...
self
Module#include されたときに対象のクラスまたはモジュー
ルを引数にしてインタプリタがこのメソッドを呼び出します。

@
param class_or_module Module#include を実行したオブジェクト

//emlist[例][ruby]{
module
Foo
def self.included(mod)...
...p "#{mod} include #{self}"
end
end
class
Bar
include
Foo
end
# => "Bar include Foo"
//}

@
see Module#append_features...

Module#include?(mod) -> bool (6155.0)

self かその親クラス / 親モジュールがモジュール mod を インクルードしていれば true を返します。

...
self
かその親クラス / 親モジュールがモジュール mod を
インクルードしていれば true を返します。

@
param mod Module を指定します。

//emlist[例][ruby]{
module
M
end
class
C1
include
M
end
class
C2 < C1
end

p C1.include?(M) # => true
p C2.include?(M)...

Module#append_features(module_or_class) -> self (262.0)

モジュール(あるいはクラス)に self の機能を追加します。

...クラス)に self の機能を追加します。

このメソッドは Module#include の実体であり、
include
を Ruby で書くと以下のように定義できます。

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

@
see Module#included...

Module#prepend_features(mod) -> self (173.0)

Module#prepend から呼び出されるメソッドで、 prepend の処理の実体です。このメソッド自体は mod で指定した モジュール/クラスの継承チェインの先頭に self を追加します。

...Module#prepend から呼び出されるメソッドで、
prepend の処理の実体です。このメソッド自体は mod で指定した
モジュール/クラスの継承チェインの先頭に self を追加します。

このメソッドを上書きすることで、prepend の処理を変...
...ます。

@
param mod prepend を呼び出したモジュール
@
return mod が返されます

//emlist[例][ruby]{
class
Recorder
RECORDS = []
end

module
X
def self.prepend_features(mod)
Recorder::RECORDS << mod
end
end

class
A
prepend X
end

class
B
include
X
end

class
C
prepen...
...d X
end

Recorder::RECORDS # => [A, C]
//}

@
see Module#prepend, Module#prepended...

絞り込み条件を変える

Module#<(other) -> bool | nil (76.0)

比較演算子。self が other の子孫である場合、 true を返します。 self が other の先祖か同一のクラス/モジュールである場合、false を返します。

...比較演算子。self が other の子孫である場合、 true を返します。
self
が other の先祖か同一のクラス/モジュールである場合、false を返します。

継承関係にないクラス同士の比較では
nil を返します。

@
param other 比較対象のモ...
...ジュールやクラス

@
raise TypeError other がクラスやモジュールではない場合に発生します。

//emlist[例][ruby]{
module
Foo
end
class
Bar
include
Foo
end
class
Baz < Bar
end
class
Qux
end
p Bar < Foo # => true
p Baz < Bar # => true
p Baz < Foo # => true
p Ba...
...z < Qux # => nil
p Baz > Qux # => nil

p Foo < Object.new # => in `<': compared with non class/module (TypeError)
//}...

Module#<=>(other) -> Integer | nil (66.0)

self と other の継承関係を比較します。

...
self
と other の継承関係を比較します。

self
と other を比較して、
self
が other の子孫であるとき -1、
同一のクラス/モジュールのとき 0、
self
が other の先祖であるとき 1
を返します。

継承関係にないクラス同士の比較では
n...
...other がクラスやモジュールでなければ
nil を返します。

@
param other 比較対象のクラスやモジュール

//emlist[例][ruby]{
module
Foo
end
class
Bar
include
Foo
end
class
Baz < Bar
end
class
Qux
end
p Bar <=> Foo # => -1
p Baz <=> Bar # => -1
p Baz <=> Foo...