るりまサーチ

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

別のキーワード

  1. objectspace each_object
  2. _builtin each_object
  3. object enum_for
  4. object send
  5. object to_enum

クラス

キーワード

検索結果

Object#methods(include_inherited = true) -> [Symbol] (39319.0)

そのオブジェクトに対して呼び出せるメソッド名の一覧を返します。 このメソッドは public メソッドおよび protected メソッドの名前を返します。

... Object#singleton_methods(false) と同じになっています。


@param include_inherited 引数が偽の時は Object#singleton_methods(false) と同じになります。

//emlist[例1][ruby]{
class Parent
private; def private_parent() end
protected; def protected_parent() end
pub...
...def public_parent() end
end


class Foo < Parent
private; def private_foo() end
protected; def protected_foo() end
public; def public_foo() end
end


obj = Foo.new
class <<obj
private; def private_singleton() end
protected; def protected_singleton() end
public; de...
...f public_singleton() end
end


# あるオブジェクトの応答できるメソッドの一覧を得る。
p obj.methods(false)
p obj.public_methods(false)
p obj.private_methods(false)
p obj.protected_methods(false)

# 実行結果
[:protected_singleton, :public_singleton]
[:public_singleton, :p...

Object#singleton_methods(inherited_too = true) -> [Symbol] (27289.0)

そのオブジェクトに対して定義されている特異メソッド名 (public あるいは protected メソッド) の一覧を返します。

...特異メソッドとは Object#extend によって追加された特異メソッドや、
self がクラスの場合はスーパークラスのクラスメソッド(Classのインスタンスの特異メソッド)などです。

singleton_methods(false) は、Object#methods(false) と同じです...
...vate_class_parent() end
protected; def protected_class_parent() end
public; def public_class_parent() end
end


Foo = Class.new(Parent)

class <<Foo
private; def private_class_foo() end
protected; def protected_class_foo() end
public; def public_class_foo() end
end


module Bar
pri...
...vate; def private_bar() end
protected; def protected_bar() end
public; def public_bar() end
end


obj = Foo.new
class <<obj
include Bar
private; def private_self() end
protected; def protected_self() end
public; def public_self() end
end


# あるオブジェクトの...

Object#send(name, *args) -> object (27270.0)

オブジェクトのメソッド name を args を引数に して呼び出し、メソッドの実行結果を返します。

...クもそのまま引き渡します。

send が再定義された場合に備えて別名 __send__ も
用意されており、ライブラリではこちらを使うべきです。また
__send__ は再定義すべきではありません。

send, __send__ は、メソッドの呼び出し制限...
...せれば良い場合は
Object
#public_send を使う方が良いでしょう。

@param name 文字列かSymbol で指定するメソッド名です。
@param args 呼び出すメソッドに渡す引数です。

//emlist[][ruby]{
p -365.send(:abs) #=> 365
p "ruby".send(:sub,/./,"R") #=> "Ruby"...
...class Foo
def foo() "foo" end
def bar() "bar" end
def baz() "baz" end
end


# 任意のキーとメソッド(の名前)の関係をハッシュに保持しておく
# レシーバの情報がここにはないことに注意
methods
= {1 => :foo,
2 => :bar,
3 => :baz}

# キーを使って...

Object#send(name, *args) { .... } -> object (27270.0)

オブジェクトのメソッド name を args を引数に して呼び出し、メソッドの実行結果を返します。

...クもそのまま引き渡します。

send が再定義された場合に備えて別名 __send__ も
用意されており、ライブラリではこちらを使うべきです。また
__send__ は再定義すべきではありません。

send, __send__ は、メソッドの呼び出し制限...
...せれば良い場合は
Object
#public_send を使う方が良いでしょう。

@param name 文字列かSymbol で指定するメソッド名です。
@param args 呼び出すメソッドに渡す引数です。

//emlist[][ruby]{
p -365.send(:abs) #=> 365
p "ruby".send(:sub,/./,"R") #=> "Ruby"...
...class Foo
def foo() "foo" end
def bar() "bar" end
def baz() "baz" end
end


# 任意のキーとメソッド(の名前)の関係をハッシュに保持しておく
# レシーバの情報がここにはないことに注意
methods
= {1 => :foo,
2 => :bar,
3 => :baz}

# キーを使って...

Object#initialize_copy(obj) -> object (21211.0)

(拡張ライブラリによる) ユーザ定義クラスのオブジェクトコピーの初期化メソッド。

...は self を obj の内容で置き換えます。ただ
し、self のインスタンス変数や特異メソッドは変化しません。
Object
#clone, Object#dupの内部で使われています。

initialize_copy は、Ruby インタプリタが知り得ない情報をコピーするた
めに...
...alize_copy でコピーするよう定義しておくことで、dup や clone
を再定義する必要がなくなります。

デフォルトの Object#initialize_copy は、 freeze チェックおよび型のチェックを行い self
を返すだけのメソッドです。

initialize_copy と...
...Error レシーバが freeze されているか、obj のクラスがレシーバ
のクラスと異なる場合に発生します。
@see Object#clone,Object#dup

以下に例として、dup や clone がこのメソッドをどのように利用しているかを示します。

obj.dup は、...

絞り込み条件を変える

Module#instance_methods(inherited_too = true) -> [Symbol] (6271.0)

そのモジュールで定義されている public および protected メソッド名 の一覧を配列で返します。

...@see Object#methods

//emlist[例1][ruby]{
class Foo
private; def private_foo() end
protected; def protected_foo() end
public; def public_foo() end
end


# あるクラスのインスタンスメソッドの一覧を得る
p Foo.instance_methods(false)
p Foo.public_instance_methods(fa...
...e_methods(false)
p Foo.protected_instance_methods(false)

class Bar < Foo
end

//}

実行結果

[:protected_foo, :public_foo]
[:public_foo]
[:private_foo]
[:protected_foo]

//emlist[例2][ruby]{
class Bar
private; def private_foo() end
protected; def protected_foo() end...
..._foo() end
end


# あるクラスのインスタンスメソッドの一覧を得る。
# 親のクラスのインスタンスメソッドも含めるため true を指定して
# いるが、Object のインスタンスメソッドは一覧から排除している。
p Bar.instance_methods(true)...

Module#private_instance_methods(inherited_too = true) -> [Symbol] (6169.0)

そのモジュールで定義されている private メソッド名 の一覧を配列で返します。

...ます。

@see Object#private_methods, Module#instance_methods

//emlist[例][ruby]{
module Foo
def foo; end
private def bar; end
end


module Bar
include Foo

def baz; end
private def qux; end
end


Bar.private_instance_methods # => [:qux, :bar]
Bar.private_instance_methods(false) # => [:q...

Method (138.0)

Object#method によりオブジェクト化され たメソッドオブジェクトのクラスです。

...Object#method によりオブジェクト化され
たメソッドオブジェクトのクラスです。

メソッドの実体(名前でなく)とレシーバの組を封入します。
Proc オブジェクトと違ってコンテキストを保持しません。

=== Proc との差

Method...
...既存のメソッドを Method オブジェクト化する。

//emlist[例][ruby]{
class Foo
def foo(arg)
"foo called with arg #{arg}"
end

end


m = Foo.new.method(:foo)

p m # => #<Method: Foo#foo>
p m.call(1) # => "foo called with arg 1"
//}

名前のないメソッド...
...のような場合。

//emlist[例][ruby]{
class Foo
def foo() "foo" end
def bar() "bar" end
def baz() "baz" end
end


obj = Foo.new

# 任意のキーとメソッドの関係をハッシュに保持しておく
methods
= {1 => obj.method(:foo),
2 => obj.method(:bar),
3 =...

main (74.0)

トップレベルでの self を表すオブジェクトです。

... Object の private インスタンスメソッドと
して定義されます。

//emlist[例: トップレベルで定義したメソッドの確認][ruby]{
basic_private_methods = private_methods(false)
basic_public_methods = public_methods(false)
private def explicit_private_method
end


#...
...ソッドと して定義される
def implicit_private_method
end


public def explicit_public_method
end


# main オブジェクトで独自定義した private method のみを取得する
p private_methods(false) - basic_private_methods
# => [:explicit_private_method, :implicit_private_method]

#...
...main オブジェクトで独自定義した public method のみを取得する
p public_methods(false) - basic_public_methods
# => [:explicit_public_method]
//}...