るりまサーチ

最速Rubyリファレンスマニュアル検索!
578件ヒット [1-100件を表示] (0.116秒)
トップページ > クエリ:C[x] > クエリ:BasicObject[x]

別のキーワード

  1. _builtin to_c
  2. etc sc_2_c_dev
  3. etc sc_2_c_bind
  4. tracer display_c_call
  5. tracer display_c_call?

検索結果

<< 1 2 3 ... > >>

BasicObject (44064.0)

特殊な用途のために意図的にほとんど何も定義されていないクラスです。 Objectクラスの親にあたります。Ruby 1.9 以降で導入されました。

...義されていないクラスです。
Objectクラスの親にあたります。Ruby 1.9 以降で導入されました。

=== 性質
BasicObject
クラスは Object クラスからほとんどのメソッドを取り除いたクラスです。

Object クラスは様々な便利なメソッド...
...
これに対して、 BasicObject クラスはオブジェクトの同一性を識別したりメソッドを呼んだりする
最低限の機能の他は一切の機能を持っていません。

=== 用途
基本的にはほぼすべてのクラスの親は Object と考えて差し支えあ...
...、ある種のクラスを定義する際には Object クラスは持っているメソッドが多すぎる
場合があります。

例えば、 BasicObject#method_missingを利用して Proxy パターンを実
装する場合にはObject クラスに定義済みのメソッドはプロクシ...

Class#superclass -> Class | nil (29224.0)

自身のスーパークラスを返します。

...y]{
File.superclass #=> IO
IO.superclass #=> Object
c
lass Foo; end
c
lass Bar < Foo; end
Bar.superclass #=> Foo
Object.superclass #=> BasicObject
//}

ただし BasicObject.superclass は nil を返します。

//emlist[例][ruby]{
BasicObject
.superclass #=> ni...
...rclass #=> IO
IO.superclass #=> Object
c
lass Foo; end
c
lass Bar < Foo; end
Bar.superclass #=> Foo
Object.superclass #=> BasicObject
//}

ただし BasicObject.superclass は nil を返します。

//emlist[例][ruby]{
BasicObject
.superclass #=> nil
//}

@see C...
...lass#subclasses...

BasicObject#instance_eval {|obj| ... } -> object (27118.0)

オブジェクトのコンテキストで文字列 expr またはオブジェクト自身をブロックパラメータとするブロックを 評価してその結果を返します。

...は instance_eval の外側のスコープと、ブロックの評価ではそのブロックの外側のスコープと、共有します。

メソッド定義の中で instance_eval でメソッドを定義した場合は、囲むメソッドが実行されたときに
初めて instance_eval 内...
...d:spec/def#nest_method を参照してください。

BasicObject
を継承して作ったクラス内で instance_eval する場合はトップレベルの定数や Kernel モジュールに定義されているメソッドは見えません。
これは、トップレベルの定数が Object 以...
...//emlist[例][ruby]{
c
lass 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(expr, filename = "(eval)", lineno = 1) -> object (27118.0)

オブジェクトのコンテキストで文字列 expr またはオブジェクト自身をブロックパラメータとするブロックを 評価してその結果を返します。

...は instance_eval の外側のスコープと、ブロックの評価ではそのブロックの外側のスコープと、共有します。

メソッド定義の中で instance_eval でメソッドを定義した場合は、囲むメソッドが実行されたときに
初めて instance_eval 内...
...d:spec/def#nest_method を参照してください。

BasicObject
を継承して作ったクラス内で instance_eval する場合はトップレベルの定数や Kernel モジュールに定義されているメソッドは見えません。
これは、トップレベルの定数が Object 以...
...//emlist[例][ruby]{
c
lass 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_exec(*args) {|*vars| ... } -> object (27106.0)

与えられたブロックをレシーバのコンテキストで実行します。

...タに渡す値です。

//emlist[例][ruby]{
c
lass 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...

絞り込み条件を変える

BasicObject#singleton_method_added(name) -> object (24118.0)

特異メソッドが追加された時にインタプリタから呼び出されます。

...//emlist[例][ruby]{
c
lass Foo
def singleton_method_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,BasicObject#singleton_method_removed,BasicObject#singleton_method_undefin...

BasicObject#singleton_method_removed(name) -> object (24118.0)

特異メソッドが Module#remove_method に より削除された時にインタプリタから呼び出されます。

...{
c
lass Foo
def singleton_method_removed(name)
puts "singleton method \"#{name}\" was removed"
end
end

obj = Foo.new
def obj.foo
end

c
lass << obj
remove_method :foo
end

#=> singleton method "foo" was removed
//}

@see Module#method_removed,BasicObject#singleton_method_added,BasicObject#...

BasicObject#singleton_method_undefined(name) -> object (24118.0)

特異メソッドが Module#undef_method または undef により未定義にされた時にインタプリタから呼び出されます。

...l で渡されます。

//emlist[例][ruby]{
c
lass 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

c
lass << 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#method_missing(name, *args) -> object (24112.0)

呼びだされたメソッドが定義されていなかった時、Rubyインタプリタがこのメソッド を呼び出します。

...例][ruby]{
c
lass Foo
def initialize(data)
@data = data
end
def method_missing(name, lang)
if name.to_s =~ /\Afind_(\d+)_in\z/
if @data[lang]
p @data[lang][$1.to_i]
else
raise "#{lang} unknown"
end
else
super
end
end
end

dic = Foo.new(...
...two), :Esperanto => %w(nulo unu du)})
dic.find_2_in :Esperanto #=> "du"
//}

[注意] このメソッドを override する場合は対象のメソッド名に対して
Object#respond_to? が真を返すようにしてください。
そのためには、Object#respond_to_missing? も同様に overr...
...ide する必
要があります。

@see Object#respond_to?, Object#respond_to_missing?...
<< 1 2 3 ... > >>