るりまサーチ

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

別のキーワード

  1. _builtin to_c
  2. etc sc_2_c_dev
  3. etc sc_2_c_bind
  4. tracer display_c_call
  5. tracer display_c_call=

検索結果

<< 1 2 3 ... > >>

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

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

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

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

//emlist[例][ruby]{
def extend(*modules)
module
s.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...

Module#included(class_or_module) -> () (6202.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
c
lass Bar
include Foo
end
# => "Bar include Foo"
//}

@see Module#append_features...

Module#const_source_location(name, inherited = true) -> [String, Integer] (6186.0)

name で指定した定数の定義を含むソースコードのファイル名と行番号を配列で返します。

...します。

@param name Symbol,String で定数の名前を指定します。
@param inherited true を指定するとスーパークラスや include したモジュールで定義された定数が対象にはなります。false を指定した場合 対象にはなりません。
@return ソ...
...
c
lass A # line 1
C
1 = 1
C
2 = 2
end

module
M # line 6
C
3 = 3
end

c
lass B < A # line 10
include M
C
4 = 4
end

c
lass A # 継続して A を定義する
C
2 = 8 # 定数を再定義する
end

p B.const_source_location('C4') # => ["test.rb", 12]
p B.const_sourc...
...e_location('C3') # => ["test.rb", 7]
p B.const_source_location('C1') # => ["test.rb", 2]

p B.const_source_location('C3', false) # => nil -- include したモジュールは検索しない

p A.const_source_location('C2') # => ["test.rb", 16] -- 最後に定義さ...

Module#include(*mod) -> self (6168.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]{
c
lass C
include FileTest
include Math
end

p C.ancestors

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

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

Module#class_eval {|mod| ... } -> object (6150.0)

モジュールのコンテキストで文字列 expr またはモジュール自身をブロックパラメータとするブロックを 評価してその結果を返します。

...です。
つまり、そのモジュールの定義式の中にあるかのように実行されます。

ただし、ローカル変数は module_eval/class_eval の外側のスコープと共有します。

定数とクラス変数のスコープは、文字列が与えられた場合とブロ...
...きます。

//emlist[例][ruby]{
c
lass C
end
a = 1
C
.class_eval %Q{
def m # メソッドを動的に定義できる。
return :m, #{a}
end
}

p C.new.m #=> [:m, 1]
//}

//emlist[定数のスコープが異なる例][ruby]{
c
lass C
end

# ブロックが渡された...
...
C
.class_eval { X = 1 }

# 文字列が渡された場合は、モジュール定義式内と同じスコープになる。つまり、この場合は
# class C
# X = 2
# end
# と書いたのと同じ意味になる。
C
.class_eval 'X = 2'

p X #=> 1
p C::X #=> 2
//}

@see BasicObject#instance...

絞り込み条件を変える

Module#class_eval(expr, fname = "(eval)", lineno = 1) -> object (6150.0)

モジュールのコンテキストで文字列 expr またはモジュール自身をブロックパラメータとするブロックを 評価してその結果を返します。

...です。
つまり、そのモジュールの定義式の中にあるかのように実行されます。

ただし、ローカル変数は module_eval/class_eval の外側のスコープと共有します。

定数とクラス変数のスコープは、文字列が与えられた場合とブロ...
...きます。

//emlist[例][ruby]{
c
lass C
end
a = 1
C
.class_eval %Q{
def m # メソッドを動的に定義できる。
return :m, #{a}
end
}

p C.new.m #=> [:m, 1]
//}

//emlist[定数のスコープが異なる例][ruby]{
c
lass C
end

# ブロックが渡された...
...
C
.class_eval { X = 1 }

# 文字列が渡された場合は、モジュール定義式内と同じスコープになる。つまり、この場合は
# class C
# X = 2
# end
# と書いたのと同じ意味になる。
C
.class_eval 'X = 2'

p X #=> 1
p C::X #=> 2
//}

@see BasicObject#instance...

Module#protected_method_defined?(name, inherit=true) -> bool (6150.0)

インスタンスメソッド name がモジュールに定義されており、 しかもその可視性が protected であるときに true を返します。 そうでなければ false を返します。

...おり、
しかもその可視性が protected であるときに true を返します。
そうでなければ false を返します。

@param name Symbol か String を指定します。
@param inherit 真を指定するとスーパークラスや include したモジュールで
定義...
...see Module#method_defined?, Module#public_method_defined?, Module#private_method_defined?

//emlist[例][ruby]{
module
A
def method1() end
end
c
lass B
protected
def method2() end
end
c
lass C < B
include A
def method3() end
end

A.method_defined? :method1 #=> true
C
.pr...
...otected_method_defined? "method1" #=> false
C
.protected_method_defined? "method2" #=> true
C
.protected_method_defined? "method2", true #=> true
C
.protected_method_defined? "method2", false #=> false
C
.method_defined? "method2" #=> true
//}...

Module#public_method_defined?(name, inherit=true) -> bool (6150.0)

インスタンスメソッド name がモジュールに定義されており、 しかもその可視性が public であるときに true を返します。 そうでなければ false を返します。

...ており、
しかもその可視性が public であるときに true を返します。
そうでなければ false を返します。

@param name Symbol か String を指定します。
@param inherit 真を指定するとスーパークラスや include したモジュールで
定義...
...see Module#method_defined?, Module#private_method_defined?, Module#protected_method_defined?

//emlist[例][ruby]{
module
A
def method1() end
end
c
lass B
protected
def method2() end
end
c
lass C < B
include A
def method3() end
end

A.method_defined? :method1 #=> true
C
.pu...
...blic_method_defined? "method1" #=> true
C
.public_method_defined? "method1", true #=> true
C
.public_method_defined? "method1", false #=> true
C
.public_method_defined? "method2" #=> false
C
.method_defined? "method2" #=> true
//}...

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

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

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

@param mod Module を指定します。

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

p C1.include?(M) # => true
p C2.include?(M) # => true
//}...
<< 1 2 3 ... > >>