るりまサーチ

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

別のキーワード

  1. basicobject __send__
  2. basicobject instance_eval
  3. _builtin basicobject
  4. basicobject equal?
  5. basicobject __id__

検索結果

<< 1 2 3 > >>

BasicObject (38060.0)

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

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

Object クラスは様々な便利なメソッドや Kernel から受け継いだ関数的メソッド
を多数有しています。
これに対して、 BasicObject クラス...
...ます。

例えば、 BasicObject#method_missingを利用して Proxy パターンを実
装する場合にはObject クラスに定義済みのメソッドはプロクシできないという
問題が発生します。このような場合に Object ではなく BasicObject から派生
して...
...すべきです。
真に必要な場合にだけ BasicObject から派生してください。

=== 例

//emlist[例][ruby]{
class Proxy < BasicObject
def initialize(target)
@
target = target
end

def method_missing(message, *args)
@
target.__send__(message, *args)
end
end

proxy =...

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

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

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

通常のメソッドの未定義に対するフックには
Module#method_undefined を使います。

@
param name 未定義にされたメソッド名...
...eton_method_undefined(name)
puts "singleton method \"#{name}\" was undefined"
end
end

obj = Foo.new
def obj.foo
end
def obj.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,BasicObject#singleton_method_added,BasicObject#singleton_method_removed , d:spec/def#undef...

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

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

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

通常のメソッドの削除に対するフックには
Module#method_removedを使います。

@
param name 削除されたメソッド名が Symbol で渡されます。...
...leton_method_removed(name)
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,BasicObject#singleton_method_added,BasicObject#singleton_method_undef...

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

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

...Module#method_addedを使います。

@
param name 追加されたメソッド名が Symbol で渡されます。

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

BasicObject#method_missing(name, *args) -> object (27155.0)

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

...ォルトではこのメソッドは例外 NoMethodError を発生させます。


@
param name 未定義メソッドの名前(シンボル)です。
@
param args 未定義メソッドに渡された引数です。
@
return ユーザー定義の method_missing メソッドの返り値が未定義...
...かのように見えます。

//emlist[例][ruby]{
class 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...
...メソッドを override する場合は対象のメソッド名に対して
Object#respond_to? が真を返すようにしてください。
そのためには、Object#respond_to_missing? も同様に override する必
要があります。

@
see Object#respond_to?, Object#respond_to_missing?...

絞り込み条件を変える

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

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

...nce_eval 内のメソッドが定義されます。これはメソッド定義のネストと同じです。
d:spec/def#nest_method を参照してください。

BasicObject
を継承して作ったクラス内で instance_eval する場合はトップレベルの定数や Kernel モジュール...
...るメソッドは見えません。
これは、トップレベルの定数が Object 以下に作成されるためです。

@
param expr 評価する文字列です。

@
param filename 文字列を指定します。ファイル filename に文字列 expr が
書かれているか...
...

@
param lineno 整数を指定します。行番号 lineno から文字列 expr が書かれているかのように実行されます。
スタックトレースの表示などを差し替えることができます。

//emlist[例][ruby]{
class Foo
def initialize data
@
key...

BasicObject#instance_eval(expr, filename = "(eval)", lineno = 1) -> object (21060.0)

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

...nce_eval 内のメソッドが定義されます。これはメソッド定義のネストと同じです。
d:spec/def#nest_method を参照してください。

BasicObject
を継承して作ったクラス内で instance_eval する場合はトップレベルの定数や Kernel モジュール...
...るメソッドは見えません。
これは、トップレベルの定数が Object 以下に作成されるためです。

@
param expr 評価する文字列です。

@
param filename 文字列を指定します。ファイル filename に文字列 expr が
書かれているか...
...

@
param lineno 整数を指定します。行番号 lineno から文字列 expr が書かれているかのように実行されます。
スタックトレースの表示などを差し替えることができます。

//emlist[例][ruby]{
class Foo
def initialize data
@
key...

Object#method(name) -> Method (18272.0)

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

...した
Method
オブジェクトを返します。

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

//emlist[][ruby]{
me = -365.method(:abs)
p me #=> #<Method: Integer#...
...abs>
p me.call #=> 365
//}

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

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

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

...化した Method オブ
ジェクトを返します。

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

//emlist[][ruby]{
class Demo
def initialize(n)
@
iv = n
e...
..."Hello, @iv = #{@iv}"
end
end

k = Demo.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 > >>