別のキーワード
種類
- インスタンスメソッド (120)
- モジュール関数 (24)
- 文書 (12)
ライブラリ
- ビルトイン (144)
クラス
- BasicObject (48)
- Module (72)
モジュール
- Kernel (24)
キーワード
-
class
_ eval (24) -
define
_ method (24) -
instance
_ exec (12) -
module
_ eval (24) -
ruby 1
. 9 feature (12) -
singleton
_ method _ undefined (12)
検索結果
先頭5件
- BasicObject
# instance _ eval(expr , filename = "(eval)" , lineno = 1) -> object - BasicObject
# instance _ eval {|obj| . . . } -> object - BasicObject
# singleton _ method _ undefined(name) -> object - BasicObject
# instance _ exec(*args) {|*vars| . . . } -> object - Kernel
. # eval(expr , bind , fname = "(eval)" , lineno = 1) -> object
-
BasicObject
# instance _ eval(expr , filename = "(eval)" , lineno = 1) -> object (51573.0) -
オブジェクトのコンテキストで文字列 expr またはオブジェクト自身をブロックパラメータとするブロックを 評価してその結果を返します。
...は instance_eval の外側のスコープと、ブロックの評価ではそのブロックの外側のスコープと、共有します。
メソッド定義の中で instance_eval でメソッドを定義した場合は、囲むメソッドが実行されたときに
初めて instance_eval 内......c/def#nest_method を参照してください。
BasicObject を継承して作ったクラス内で instance_eval する場合はトップレベルの定数や Kernel モジュールに定義されているメソッドは見えません。
これは、トップレベルの定数が Object 以下......//emlist[例][ruby]{
class Foo
def initialize data
@key = data
end
private
def do_fuga
p 'secret'
end
end
some = Foo.new 'XXX'
some.instance_eval{p @key} #=> "XXX"
some.instance_eval{do_fuga } #=> "secret" # private メソッドも呼び出せる
some.instance_eval 'raise' # ..... -
BasicObject
# instance _ eval {|obj| . . . } -> object (51473.0) -
オブジェクトのコンテキストで文字列 expr またはオブジェクト自身をブロックパラメータとするブロックを 評価してその結果を返します。
...は instance_eval の外側のスコープと、ブロックの評価ではそのブロックの外側のスコープと、共有します。
メソッド定義の中で instance_eval でメソッドを定義した場合は、囲むメソッドが実行されたときに
初めて instance_eval 内......c/def#nest_method を参照してください。
BasicObject を継承して作ったクラス内で instance_eval する場合はトップレベルの定数や Kernel モジュールに定義されているメソッドは見えません。
これは、トップレベルの定数が Object 以下......//emlist[例][ruby]{
class Foo
def initialize data
@key = data
end
private
def do_fuga
p 'secret'
end
end
some = Foo.new 'XXX'
some.instance_eval{p @key} #=> "XXX"
some.instance_eval{do_fuga } #=> "secret" # private メソッドも呼び出せる
some.instance_eval 'raise' # ..... -
BasicObject
# singleton _ method _ undefined(name) -> object (27130.0) -
特異メソッドが Module#undef_method または undef により未定義にされた時にインタプリタから呼び出されます。
...特異メソッドが Module#undef_method または
undef により未定義にされた時にインタプリタから呼び出されます。
通常のメソッドの未定義に対するフックには
Module#method_undefined を使います。
@param name 未定義にされたメソッド名......list[例][ruby]{
class Foo
def singleton_method_undefined(name)
puts "singleton method \"#{name}\" was undefined"
end
end
obj = Foo.new
def obj.foo
end
def obj.bar
end
class << obj
undef_method :foo
end
obj.instance_eval {undef bar}
#=> singleton method "foo" was undefined
# singleton......method "bar" was undefined
//}
@see Module#method_undefined,BasicObject#singleton_method_added,BasicObject#singleton_method_removed , d:spec/def#undef... -
BasicObject
# instance _ exec(*args) {|*vars| . . . } -> object (27124.0) -
与えられたブロックをレシーバのコンテキストで実行します。
...タに渡す値です。
//emlist[例][ruby]{
class KlassWithSecret
def initialize
@secret = 99
end
end
k = KlassWithSecret.new
# 以下で x には 5 が渡される
k.instance_exec(5) {|x| @secret + x } #=> 104
//}
@see Module#class_exec, Module#module_exec, BasicObject#instance_eval... -
Kernel
. # eval(expr , bind , fname = "(eval)" , lineno = 1) -> object (18409.0) -
文字列 expr を Ruby プログラムとして評価してその結果を返しま す。第2引数に Binding オブジェクトを与えた場合、 そのオブジェクトを生成したコンテキストで文字列を評価します。
...文字列 expr を Ruby プログラムとして評価してその結果を返しま
す。第2引数に
Binding オブジェクトを与えた場合、
そのオブジェクトを生成したコンテキストで文字列を評価します。
expr の中のローカル変数の扱いはブロッ......クの場合と同じです。すなわち、eval
実行前に補足されていた変数は eval 実行後にブロック外に持ち出せます。
fname と lineno が与えられた場合には、ファイル
fname の行番号 lineno から文字列 expr が書かれているかのように......きます。
bind によらずに特定のオブジェクトのコンテキストで expr を評価したい場合、
Module#module_eval, BasicObject#instance_eval が使えます。
@param expr 評価する文字列です。
@param bind 評価コンテキストです。
@param fname スタッ... -
Kernel
. # eval(expr) -> object (18309.0) -
文字列 expr を Ruby プログラムとして評価してその結果を返しま す。第2引数に Binding オブジェクトを与えた場合、 そのオブジェクトを生成したコンテキストで文字列を評価します。
...文字列 expr を Ruby プログラムとして評価してその結果を返しま
す。第2引数に
Binding オブジェクトを与えた場合、
そのオブジェクトを生成したコンテキストで文字列を評価します。
expr の中のローカル変数の扱いはブロッ......クの場合と同じです。すなわち、eval
実行前に補足されていた変数は eval 実行後にブロック外に持ち出せます。
fname と lineno が与えられた場合には、ファイル
fname の行番号 lineno から文字列 expr が書かれているかのように......きます。
bind によらずに特定のオブジェクトのコンテキストで expr を評価したい場合、
Module#module_eval, BasicObject#instance_eval が使えます。
@param expr 評価する文字列です。
@param bind 評価コンテキストです。
@param fname スタッ... -
ruby 1
. 9 feature (6883.0) -
ruby 1.9 feature ruby version 1.9.0 は開発版です。 以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。 1.9.1 以降は安定版です。 バグ修正がメインになります。
...ruby 1.9 feature
ruby version 1.9.0 は開発版です。
以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。
1.9.1 以降は安定版です。
バグ修正がメインになります。
記号について(特に重要なもの......Module#attr
オプショナル引数の assignable がなくなり、attr_reader 相当になりました
[RCR#331]
=== 2006-06-22
: Module#name
無名モジュールに対しては nil を返すようになりました
[ruby-talk:198440]
=== 2006-06-17
: BasicObject#invoke_method
: Ba......ate+4>))
=== 2006-05-22
: accept
((<ruby-core:7917>))
=== 2006-03-21
: MatchData#[] [compat]
名前による参照
((<ruby-dev:28446>))
=== 2006-03-03
: FileUtils.cp_r [lib] [compat]
remove_destination オプションの追加
((<ruby-dev:28417>))
=== 2006-02-15
: instance_eval... -
Module
# class _ eval(expr , fname = "(eval)" , lineno = 1) -> object (6372.0) -
モジュールのコンテキストで文字列 expr またはモジュール自身をブロックパラメータとするブロックを 評価してその結果を返します。
...。
つまり、そのモジュールの定義式の中にあるかのように実行されます。
ただし、ローカル変数は module_eval/class_eval の外側のスコープと共有します。
定数とクラス変数のスコープは、文字列が与えられた場合とブロック......ことができます。
//emlist[例][ruby]{
class C
end
a = 1
C.class_eval %Q{
def m # メソッドを動的に定義できる。
return :m, #{a}
end
}
p C.new.m #=> [:m, 1]
//}
//emlist[定数のスコープが異なる例][ruby]{
class C
end
# ブロックが......s_eval { X = 1 }
# 文字列が渡された場合は、モジュール定義式内と同じスコープになる。つまり、この場合は
# class C
# X = 2
# end
# と書いたのと同じ意味になる。
C.class_eval 'X = 2'
p X #=> 1
p C::X #=> 2
//}
@see BasicObject#instance_eval,... -
Module
# module _ eval(expr , fname = "(eval)" , lineno = 1) -> object (6372.0) -
モジュールのコンテキストで文字列 expr またはモジュール自身をブロックパラメータとするブロックを 評価してその結果を返します。
...。
つまり、そのモジュールの定義式の中にあるかのように実行されます。
ただし、ローカル変数は module_eval/class_eval の外側のスコープと共有します。
定数とクラス変数のスコープは、文字列が与えられた場合とブロック......ことができます。
//emlist[例][ruby]{
class C
end
a = 1
C.class_eval %Q{
def m # メソッドを動的に定義できる。
return :m, #{a}
end
}
p C.new.m #=> [:m, 1]
//}
//emlist[定数のスコープが異なる例][ruby]{
class C
end
# ブロックが......s_eval { X = 1 }
# 文字列が渡された場合は、モジュール定義式内と同じスコープになる。つまり、この場合は
# class C
# X = 2
# end
# と書いたのと同じ意味になる。
C.class_eval 'X = 2'
p X #=> 1
p C::X #=> 2
//}
@see BasicObject#instance_eval,...