るりまサーチ

最速Rubyリファレンスマニュアル検索!
445件ヒット [1-100件を表示] (0.114秒)
トップページ > 種類:インスタンスメソッド[x] > クエリ:-[x] > クエリ:@[x] > クエリ:end[x] > クラス:Object[x]

別のキーワード

  1. _builtin -
  2. open-uri open
  3. irb/input-method gets
  4. irb/input-method new
  5. matrix -

検索結果

<< 1 2 3 ... > >>

Object#extend(*modules) -> self (6256.0)

引数で指定したモジュールのインスタンスメソッドを self の特異 メソッドとして追加します。

...を追加します
が、extend は、ある特定のオブジェクトだけにモジュールの機能を追加
したいときに使用します。

引数に複数のモジュールを指定した場合、最後
の引数から逆順に extend を行います。

@
param modules モジュール...
...スは不可)。
@
return self を返します。

//emlist[][ruby]{
module Foo
def a
'ok Foo'
end

end


module Bar
def b
'ok Bar'
end

end


obj = Object.new
obj.extend Foo, Bar
p obj.a #=> "ok Foo"
p obj.b #=> "ok Bar"

class Klass
include Foo
extend Bar
end


p Klass.new.a #=> "o...
.../}

extend の機能は、「特異クラスに対する Module#include」
と言い替えることもできます。
ただしその場合、フック用のメソッド
が Module#extended ではなく Module#included になるという違いがあります。

//emlist[][ruby]{
# obj.extend Foo, B...

Object#send(name, *args) -> object (6250.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 (6250.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#public_send(name, *args) -> object (6232.0)

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

...//emlist[][ruby]{
1.public_send(:+, 2) # => 3
//}

@
param name 文字列かSymbol で指定するメソッド名です。

@
param args 呼び出すメソッドに渡す引数です。

@
raise ArgumentError name を指定しなかった場合に発生します。

@
raise NoMethodError protected...
...メソッドや private メソッドに対して実行
した場合に発生します。

//emlist[][ruby]{
1.public_send(:puts, "hello") # => NoMethodError
//}

@
see BasicObject#__send__, Object#send...

Object#public_send(name, *args) { .... } -> object (6232.0)

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

...//emlist[][ruby]{
1.public_send(:+, 2) # => 3
//}

@
param name 文字列かSymbol で指定するメソッド名です。

@
param args 呼び出すメソッドに渡す引数です。

@
raise ArgumentError name を指定しなかった場合に発生します。

@
raise NoMethodError protected...
...メソッドや private メソッドに対して実行
した場合に発生します。

//emlist[][ruby]{
1.public_send(:puts, "hello") # => NoMethodError
//}

@
see BasicObject#__send__, Object#send...

絞り込み条件を変える

Object#must_send -> true (6218.0)

@todo

...@todo...

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

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

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

singleton_methods(false) は、Object#methods(false) と同じです。

@
param inhe...
...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#methods(include_inherited = true) -> [Symbol] (210.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#respond_to?(name, include_all = false) -> bool (192.0)

オブジェクトがメソッド name を持つとき真を返します。

...を返します。

メソッドが定義されていない場合は、Object#respond_to_missing? を呼
び出してその結果を返します。

@
param name Symbol または文字列で指定するメソッド名です。

@
param include_all private メソッドと protected メソッドを確...
...は false(含めない) を指定した事になります。

//emlist[][ruby]{
class F
def hello
"Bonjour"
end

end


class D
private
def hello
"Guten Tag"
end

end

list = [F.new,D.new]

list.each{|it| puts it.hello if it.respond_to?(:hello)}
#=> Bonjour

list.each{|it| it.instan...
...late_method
finish
end


def start
puts "start"
end


def template_method
raise NotImplementedError.new
end


def finish
puts "finish"
end

end


class ImplTemplateMethod
include Template
def template_method
"implement template_method"
end

end


class NotImplTemplat...

Object#singleton_method(name) -> Method (174.0)

オブジェクトの特異メソッド name をオブジェクト化した Method オブ ジェクトを返します。

...

@
param name メソッド名をSymbol またはStringで指定します。
@
raise NameError 定義されていないメソッド名を引数として与えると発生します。

//emlist[][ruby]{
class Demo
def initialize(n)
@
iv = n
end

def hello()
"Hello, @iv = #{@iv}"
end

end
...
...o.new(99)
def k.hi
"Hi, @iv = #{@iv}"
end

m = k.singleton_method(:hi) # => #<Method: #<Demo:0xf8b0c3c4 @iv=99>.hi>
m.call #=> "Hi, @iv = 99"
m = k.singleton_method(:hello) # => NameError
//}

@
see Module#instance_method, Method, BasicObject#__send__, Object#send, Kernel.#eval, Object#method...

絞り込み条件を変える

<< 1 2 3 ... > >>