ライブラリ
- ビルトイン (61)
キーワード
- === (3)
- class (3)
- extend (3)
-
instance
_ eval (6) -
instance
_ exec (3) -
instance
_ variables (3) -
is
_ a? (3) -
kind
_ of? (3) - method (3)
- methods (3)
-
private
_ methods (3) -
protected
_ methods (3) -
public
_ methods (3) -
remove
_ instance _ variable (3) -
respond
_ to? (3) -
singleton
_ method _ added (3) -
singleton
_ method _ removed (3) -
singleton
_ method _ undefined (3) -
singleton
_ methods (3) - type (1)
検索結果
先頭5件
-
Object
# extend(*modules) -> self (155) -
引数で指定したモジュールのインスタンスメソッドを self の特異 メソッドとして追加します。
...引数で指定したモジュールのインスタンスメソッドを self の特異
メソッドとして追加します。
Module#include は、クラス(のインスタンス)に機能を追加します
が、extend は、ある特定のオブジェクトだけにモジュールの機能を......xtend を行います。
@param modules モジュールを任意個指定します(クラスは不可)。
@return self を返します。
module Foo
def a
'ok Foo'
end
end
module Bar
def b
'ok Bar'
end
end
obj = Object.new
obj.extend Foo, Bar
p o......b #=> "ok Bar"
extend の機能は、「特異クラスに対する Module#include」
と言い替えることもできます。
ただしその場合、フック用のメソッド
が Module#extended ではなく Module#included になるという違いがあります。
# obj.extend Foo,... -
Object
# singleton _ method _ removed(name) -> object (29) -
特異メソッドが Module#remove_method に より削除された時にインタプリタから呼び出されます。
...特異メソッドが Module#remove_method に
より削除された時にインタプリタから呼び出されます。
通常のメソッドの削除に対するフックには
Module#method_removedを使います。
@param name 削除されたメソッド名が Symbol で渡されます。......puts "singleton method \"#{name}\" was removed"
end
end
obj = Foo.new
def obj.foo
end
class << obj
remove_method :foo
end
#=> singleton method "foo" was removed
@see Module#method_removed,Object#singleton_method_added,Object#singleton_method_undefined... -
Object
# singleton _ method _ undefined(name) -> object (29) -
特異メソッドが Module#undef_method または undef により未定義にされた時にインタプリタから呼び出されます。
...特異メソッドが Module#undef_method または
undef により未定義にされた時にインタプリタから呼び出されます。
通常のメソッドの未定義に対するフックには
Module#method_undefined を使います。
@param name 未定義にされたメソッド名.......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,Object#singleton_method_added,Object#singleton_method_removed , d:spec/def#undef... -
Object
# instance _ exec(*args) {|*vars| . . . } -> object (19) -
与えられたブロックをレシーバのコンテキストで実行します。
...メータに渡す値です。
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, Object#instance_eval... -
Object
# instance _ variables -> [String] (19) -
オブジェクトのインスタンス変数名を文字列の配列として返します。
...列の配列として返します。
obj = Object.new
obj.instance_eval { @foo, @bar = nil }
p obj.instance_variables
#=> ["@foo", "@bar"]
@see Object#instance_variable_get,Kernel.#local_variables,Kernel.#global_variables,Module.constants,Module#constants,Module#class_variables... -
Object
# instance _ variables -> [Symbol] (19) -
オブジェクトのインスタンス変数名をシンボルの配列として返します。
...ボルの配列として返します。
obj = Object.new
obj.instance_eval { @foo, @bar = nil }
p obj.instance_variables
#=> [:@foo, :@bar]
@see Object#instance_variable_get,Kernel.#local_variables,Kernel.#global_variables,Module.constants,Module#constants,Module#class_variables... -
Object
# is _ a?(mod) -> bool (19) -
オブジェクトが指定されたクラス mod かそのサブクラスのインスタンスであるとき真を返します。
...ジュールなど、Moduleかそのサブクラスのインスタンスです。
module M
end
class C < Object
include M
end
class S < C
end
obj = S.new
p obj.is_a?(S) # true
p obj.is_a?(C) # true
p obj.is_a?(Object) # true
p obj.is_a......?(M) # true
p obj.is_a?(Hash) # false
@see Object#instance_of?,Module#===,Object#class... -
Object
# kind _ of?(mod) -> bool (19) -
オブジェクトが指定されたクラス mod かそのサブクラスのインスタンスであるとき真を返します。
...ジュールなど、Moduleかそのサブクラスのインスタンスです。
module M
end
class C < Object
include M
end
class S < C
end
obj = S.new
p obj.is_a?(S) # true
p obj.is_a?(C) # true
p obj.is_a?(Object) # true
p obj.is_a......?(M) # true
p obj.is_a?(Hash) # false
@see Object#instance_of?,Module#===,Object#class... -
Object
# instance _ eval {|obj| . . . } -> object (13) -
オブジェクトのコンテキストで文字列 expr またはオブジェクト自身をブロックパラメータとするブロックを 評価してその結果を返します。
...some.instance_eval{do_fuga } #=> "secret" # private メソッドも呼び出せる
some.instance_eval 'raise' # ..:10: (eval):1: (RuntimeError)
messg = 'unknown'
some.instance_eval 'raise messg','file.rb',999 # file.rb:999: unknown (RuntimeError)
@see Module#module_eval, Kernel.#eval... -
Object
# instance _ eval(expr , filename = "(eval)" , lineno = 1) -> object (13) -
オブジェクトのコンテキストで文字列 expr またはオブジェクト自身をブロックパラメータとするブロックを 評価してその結果を返します。
...some.instance_eval{do_fuga } #=> "secret" # private メソッドも呼び出せる
some.instance_eval 'raise' # ..:10: (eval):1: (RuntimeError)
messg = 'unknown'
some.instance_eval 'raise messg','file.rb',999 # file.rb:999: unknown (RuntimeError)
@see Module#module_eval, Kernel.#eval... -
Object
# remove _ instance _ variable(name) -> object (13) -
オブジェクトからインスタンス変数 name を取り除き、そのインス タンス変数に設定されていた値を返します。
...合に発生します。
class Foo
def foo
@foo = 1
p remove_instance_variable(:@foo) #=> 1
p remove_instance_variable(:@foo) # instance variable @foo not defined (NameError)
end
end
Foo.new.foo
@see Module#remove_class_variable,Module#remove_const... -
Object
# singleton _ method _ added(name) -> object (13) -
特異メソッドが追加された時にインタプリタから呼び出されます。
...異メソッドが追加された時にインタプリタから呼び出されます。
通常のメソッドの追加に対するフックには
Module#method_addedを使います。
@param name 追加されたメソッド名が Symbol で渡されます。
class Foo
def singleton_meth......od_added(name)
puts "singleton method \"#{name}\" was added"
end
end
obj = Foo.new
def obj.foo
end
#=> singleton method "foo" was added
@see Module#method_added,Object#singleton_method_removed,Object#singleton_method_undefined... -
Object
# ===(other) -> bool (7) -
メソッド Object#== の別名です。 case 式で使用されます。このメソッドは case 式での振る舞いを考慮して、 各クラスの性質に合わせて再定義すべきです。
...メソッド Object#== の別名です。
case 式で使用されます。このメソッドは case 式での振る舞いを考慮して、
各クラスの性質に合わせて再定義すべきです。
一般的に所属性のチェックを実現するため適宜再定義されます。
when......String class. But don't hit."
else
"unknown"
end
end
puts check([]) #=> unknown
puts check("mash-up in Ruby on Rails") #=> instance of String class. But not hit...
puts check("<Ruby's world>") #=> hit! <Ruby's world>
@see Object#==, Range#===, Module#===, Enumerable#grep... -
Object
# class -> Class (7) -
レシーバのクラスを返します。
...class #=> String
p 999999999999999.class #=> Bignum
p ARGV.class #=> Array
p self.class #=> Object
p Class.class #=> Class
p Kernel.class #=> Module
@see Class#superclass,Object#kind_of?,Object#instance_of?... -
Object
# method(name) -> Method (7) -
オブジェクトのメソッド name をオブジェクト化した Method オブジェクトを返します。
...名をSymbol またはStringで指定します。
@raise NameError 定義されていないメソッド名を引数として与えると発生します。
me = -365.method(:abs)
p me #=> #<Method: Fixnum#abs>
p me.call #=> 365
@see Module#instance_method,Method,Object#__send__,Kernel.#eval... -
Object
# methods(include _ inherited = true) -> [String] (7) -
そのオブジェクトに対して呼び出せるメソッド名の一覧を返します。 このメソッドは public メソッドおよび protected メソッドの名前を返します。
...ected メソッドの名前を返します。
ただし特別に、引数が偽の時は Object#singleton_methods(false) と同じになっています。
@param include_inherited 引数が偽の時は Object#singleton_methods(false) と同じになります。
#例1:
class Parent
pri......して
# いるが、Object のインスタンスメソッドは一覧から排除している。
p obj.methods(true) - Object.instance_methods(true)
p obj.public_methods(true) - Object.public_instance_methods(true)
p obj.private_methods(true) - Object.private_instance_methods......singleton", "public_singleton", "protected_foo", "protected_parent"]
["public_foo", "public_parent", "public_singleton"]
["private_singleton", "private_foo", "private_parent"]
["protected_singleton", "protected_foo", "protected_parent"]
@see Module#instance_methods,Object#singleton_methods... -
Object
# methods(include _ inherited = true) -> [Symbol] (7) -
そのオブジェクトに対して呼び出せるメソッド名の一覧を返します。 このメソッドは public メソッドおよび protected メソッドの名前を返します。
...ected メソッドの名前を返します。
ただし特別に、引数が偽の時は Object#singleton_methods(false) と同じになっています。
@param include_inherited 引数が偽の時は Object#singleton_methods(false) と同じになります。
#例1:
class Parent
pri......して
# いるが、Object のインスタンスメソッドは一覧から排除している。
p obj.methods(true) - Object.instance_methods(true)
p obj.public_methods(true) - Object.public_instance_methods(true)
p obj.private_methods(true) - Object.private_instance_methods......ic_singleton, :protected_foo, :public_foo, :protected_parent, :public_parent]
[:public_singleton, :public_foo, :public_parent]
[:private_singleton, :private_foo, :private_parent]
[:protected_singleton, :protected_foo, :protected_parent]
@see Module#instance_methods,Object#singleton_methods... -
Object
# private _ methods(include _ inherited = true) -> [String] (7) -
そのオブジェクトが理解できる private メソッド名の一覧を返します。
...が理解できる private メソッド名の一覧を返します。
@param include_inherited 偽となる値を指定すると自身のクラスのスーパークラスで定義されたメソッドを除きます。
@see Module#private_instance_methods,Object#methods,Object#singleton_methods... -
Object
# private _ methods(include _ inherited = true) -> [Symbol] (7) -
そのオブジェクトが理解できる private メソッド名の一覧を返します。
...が理解できる private メソッド名の一覧を返します。
@param include_inherited 偽となる値を指定すると自身のクラスのスーパークラスで定義されたメソッドを除きます。
@see Module#private_instance_methods,Object#methods,Object#singleton_methods... -
Object
# protected _ methods(include _ inherited = true) -> [String] (7) -
そのオブジェクトが理解できる protected メソッド名の一覧を返します。
...理解できる protected メソッド名の一覧を返します。
@param include_inherited 偽となる値を指定すると自身のクラスのスーパークラスで定義されたメソッドを除きます。
@see Module#protected_instance_methods,Object#methods,Object#singleton_methods... -
Object
# protected _ methods(include _ inherited = true) -> [Symbol] (7) -
そのオブジェクトが理解できる protected メソッド名の一覧を返します。
...理解できる protected メソッド名の一覧を返します。
@param include_inherited 偽となる値を指定すると自身のクラスのスーパークラスで定義されたメソッドを除きます。
@see Module#protected_instance_methods,Object#methods,Object#singleton_methods... -
Object
# public _ methods(include _ inherited = true) -> [String] (7) -
そのオブジェクトが理解できる public メソッド名の一覧を返します。
...トが理解できる public メソッド名の一覧を返します。
@param include_inherited 偽となる値を指定すると自身のクラスのスーパークラスで定義されたメソッドを除きます。
@see Module#public_instance_methods,Object#methods,Object#singleton_methods... -
Object
# public _ methods(include _ inherited = true) -> [Symbol] (7) -
そのオブジェクトが理解できる public メソッド名の一覧を返します。
...トが理解できる public メソッド名の一覧を返します。
@param include_inherited 偽となる値を指定すると自身のクラスのスーパークラスで定義されたメソッドを除きます。
@see Module#public_instance_methods,Object#methods,Object#singleton_methods... -
Object
# respond _ to?(name , include _ private = false) -> bool (7) -
オブジェクトが public メソッド name を持つとき真を返します。 include_private が真のときは private メソッドに対しても真を返します。
...lass 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.instance_eval("puts hello if it.respond_to?(:hello, true)")}
#=> Bonjour
# Guten Tag
@see Module#method_defined?... -
Object
# singleton _ methods(inherited _ too = true) -> [String] (7) -
そのオブジェクトに対して定義されている特異メソッド名 (public あるいは protected メソッド) の一覧を返します。
...)に関しては
引数が真のとき、スーパークラスのクラスメソッドも対象になります。
singleton_methods(false) は、Object#methods(false) と同じです。
@param inherited_too 引数が真のとき、スーパークラスのクラスメソッドも対象になりま......ss <<Foo
private; def private_class_foo() end
protected; def protected_class_foo() end
public; def public_class_foo() end
end
module Bar
private; def private_bar() end
protected; def protected_bar() end
public; def public_bar() end
end
obj = Foo.n......のクラスメソッドも含まれるよう true を指定したが、
# Object のクラスメソッドは一覧から排除している。
p obj.singleton_methods(true)
p Foo.singleton_methods(true) - Object.singleton_methods(true)
#実行結果
["public_bar", "public_self", "... -
Object
# singleton _ methods(inherited _ too = true) -> [Symbol] (7) -
そのオブジェクトに対して定義されている特異メソッド名 (public あるいは protected メソッド) の一覧を返します。
...)に関しては
引数が真のとき、スーパークラスのクラスメソッドも対象になります。
singleton_methods(false) は、Object#methods(false) と同じです。
@param inherited_too 引数が真のとき、スーパークラスのクラスメソッドも対象になりま......ss <<Foo
private; def private_class_foo() end
protected; def protected_class_foo() end
public; def public_class_foo() end
end
module Bar
private; def private_bar() end
protected; def protected_bar() end
public; def public_bar() end
end
obj = Foo.n......のクラスメソッドも含まれるよう true を指定したが、
# Object のクラスメソッドは一覧から排除している。
p obj.singleton_methods(true)
p Foo.singleton_methods(true) - Object.singleton_methods(true)
#実行結果
[:protected_self, :public_self,... -
Object
# type -> Class (7) -
レシーバのクラスを返します。
...class #=> String
p 999999999999999.class #=> Bignum
p ARGV.class #=> Array
p self.class #=> Object
p Class.class #=> Class
p Kernel.class #=> Module
@see Class#superclass,Object#kind_of?,Object#instance_of?...
