Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > UnboundMethodクラス
クラス・モジュールの継承リスト: UnboundMethod < Object < Kernel < BasicObject
レシーバを持たないメソッドを表すクラスです。呼び出すためにはレシーバにバインドする必要があります。
Module#instance_method や Method#unbind により生成し、後で UnboundMethod#bind によりレシーバを割り当てた Method オブジェクトを作ることができます。
class Foo
def foo() "foo" end
def bar() "bar" end
def baz() "baz" end
end
# 任意のキーとメソッドの関係をハッシュに保持しておく
# レシーバの情報がここにはないことに注意
methods = {1 => Foo.instance_method(:foo),
2 => Foo.instance_method(:bar),
3 => Foo.instance_method(:baz)}
# キーを使って関連するメソッドを呼び出す
# レシーバは任意(Foo クラスのインスタンスでなければならない)
p methods[1].bind(Foo.new).call # => "foo"
p methods[2].bind(Foo.new).call # => "bar"
p methods[3].bind(Foo.new).call # => "baz"
class Foo
def foo
p :foo
end
@@orig_foo = instance_method :foo
def foo
p :bar
@@orig_foo.bind(self).call
end
end
Foo.new.foo
# => :bar
# :foo
定義 | 説明 | |
---|---|---|
self == other -> bool
|
自身と other が同じクラスあるいは同じモジュールの同じメソッドを表す場合に true を返します。そうでない場合に false を返します。 |
|
arity -> Integer
|
メソッドが受け付ける引数の数を返します。 |
|
bind(obj) -> Method
|
self を obj にバインドした Method オブジェクトを生成して返します。 |
|
clone -> UnboundMethod
|
自身を複製した UnboundMethod オブジェクトを作成して返します。 |
|
hash -> Integer
|
自身のハッシュ値を返します。 |
|
inspect -> String
|
self を読みやすい文字列として返します。 |
|
name -> Symbol
|
このメソッドの名前を返します。 |
|
original_name -> Symbol
|
オリジナルのメソッド名を返します。 |
|
owner -> Class | Module
|
このメソッドが定義されている class か module を返します。 |
|
parameters -> [object]
|
UnboundMethod オブジェクトの引数の情報を返します。 |
|
source_location -> [String, Integer] | nil
|
ソースコードのファイル名と行番号を配列で返します。 |
|
super_method -> UnboundMethod | nil
|
self 内で super を実行した際に実行されるメソッドを UnboundMethod オブジェクトにして返します。 |
!
!=
__id__
__send__
instance_eval
instance_exec
method_missing
singleton_method_added
singleton_method_removed
singleton_method_undefined
!~
<=>
===
=~
_dump
class
clone
define_singleton_method
display
enum_for
equal?
extend
freeze
frozen?
initialize
initialize_copy
instance_of?
instance_variable_defined?
instance_variable_get
instance_variable_set
instance_variables
is_a?
itself
marshal_dump
marshal_load
method
methods
nil?
object_id
pretty_inspect
pretty_print
pretty_print_cycle
pretty_print_inspect
pretty_print_instance_variables
private_methods
protected_methods
psych_to_yaml
public_method
public_methods
public_send
remove_instance_variable
respond_to?
respond_to_missing?
send
singleton_class
singleton_method
singleton_methods
taint
tainted?
tap
to_a
to_ary
to_hash
to_int
to_io
to_proc
to_regexp
to_str
trust
untaint
untrust
untrusted?
.new
.yaml_tag
::ARGF
::ARGV
::DATA
::ENV
::FALSE
::NIL
::RUBY_COPYRIGHT
::RUBY_DESCRIPTION
::RUBY_ENGINE
::RUBY_ENGINE_VERSION
::RUBY_PATCHLEVEL
::RUBY_PLATFORM
::RUBY_RELEASE_DATE
::RUBY_REVISION
::RUBY_VERSION
::SCRIPT_LINES__
::STDERR
::STDIN
::STDOUT
::TOPLEVEL_BINDING
::TRUE