要約
トップレベルでの self を表すオブジェクトです。
main では参照できない事に注意してください。トップレベルで self から参照してください。
トップレベルで定義したメソッドは Object の private インスタンスメソッドとして定義されます。
basic_private_methods = private_methods(false)
basic_public_methods = public_methods(false)
private def explicit_private_method
end
# トップレベルで定義したメソッドは main オブジェクトの private メソッドと して定義される
def implicit_private_method
end
public def explicit_public_method
end
# main オブジェクトで独自定義した private method のみを取得する
p private_methods(false) - basic_private_methods
# => [:explicit_private_method, :implicit_private_method]
# main オブジェクトで独自定義した public method のみを取得する
p public_methods(false) - basic_public_methods
# => [:explicit_public_method]
目次
特異メソッド
define_method(name, method) -> Symbol
[permalink][rdoc][edit]define_method(name) { ... } -> Symbol
-
インスタンスメソッド name を Object に定義します。
ブロックを与えた場合、定義したメソッドの実行時にブロックが Object インスタンスの上で BasicObject#instance_eval されます。
- [PARAM] name:
- String または Symbol を指定します。
- [PARAM] method:
- Proc、Method あるいは UnboundMethod のいずれかのインスタンスを指定します。
- [RETURN]
- メソッド名を表す Symbol を返します。
- [EXCEPTION] TypeError:
- method に同じクラス、サブクラス以外のメソッドを指定した場合に発生します。
[SEE_ALSO] Module#define_method
include(*modules) -> self
[permalink][rdoc][edit]-
引数 modules で指定したモジュールを後ろから順番に Object にインクルードします。
- [PARAM] modules:
- Module のインスタンス( Enumerable など)を指定します。
- [EXCEPTION] ArgumentError:
- 継承関係が循環してしまうような include を行った場合に発生します。
include Math hypot(3, 4) # => 5.0
[SEE_ALSO] Module#include
to_s -> "main"
[permalink][rdoc][edit]inspect -> "main"
-
"main" を返します。
private(*name) -> self
[permalink][rdoc][edit]-
メソッドを private に設定します。
引数が与えられた時には引数によって指定されたメソッドを private に設定します。
引数なしのときは今後このクラスまたはモジュール定義内で新規に定義されるメソッドを関数形式でだけ呼び出せるように(private)設定します。
- [PARAM] name:
- 0 個以上の String または Symbol を指定します。
- [EXCEPTION] NameError:
- 存在しないメソッド名を指定した場合に発生します。
[SEE_ALSO] Module#private
public(*name) -> self
[permalink][rdoc][edit]-
メソッドを public に設定します。
引数なしのときは今後このクラスまたはモジュール定義内で新規に定義されるメソッドをどんな形式でも呼び出せるように(public)設定します。
引数が与えられた時には引数によって指定されたメソッドを public に設定します。
- [PARAM] name:
- 0 個以上の String または Symbol を指定します。
- [EXCEPTION] NameError:
- 存在しないメソッド名を指定した場合に発生します。
[SEE_ALSO] Module#public
using(module) -> self
[permalink][rdoc][edit]-
引数で指定したモジュールで定義された拡張を有効にします。
有効にした拡張の有効範囲については以下を参照してください。
- [PARAM] module:
- 有効にするモジュールを指定します。
module Sloth refine String do def downcase self end end end "ABC".downcase # => "abc" using Sloth "ABC".downcase # => "ABC"
[SEE_ALSO] Module#refine, Module#using