Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > mainオブジェクト

object main

クラスの継承リスト: main

要約

トップレベルでの 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 include inspect to_s private public using

特異メソッド

define_method(name, method) -> Symbol[permalink][rdoc]
define_method(name) { ... } -> Symbol

インスタンスメソッド name を Object に定義します。

ブロックを与えた場合、定義したメソッドの実行時にブロックが Object インスタンスの上で BasicObject#instance_eval されます。

[PARAM] name:
String または Symbol を指定します。
[PARAM] method:
ProcMethod あるいは UnboundMethod の いずれかのインスタンスを指定します。
[RETURN]
メソッド名を表す Symbol を返します。
[EXCEPTION] TypeError:
method に同じクラス、サブクラス以外のメソッドを指定し た場合に発生します。

[SEE_ALSO] Module#define_method

include(*modules) -> self[permalink][rdoc]

引数 modules で指定したモジュールを後ろから順番にインクルードします。

[PARAM] moddules:
Module のインスタンス( Enumerable など)を指定します。
[EXCEPTION] ArgumentError:
継承関係が循環してしまうような include を行った場 合に発生します。
例:

include Math

hypot(3, 4)  # => 5.0

[SEE_ALSO] Module#include

to_s -> "main"[permalink][rdoc]
inspect -> "main"

"main" を返します。

private(*name) -> Object[permalink][rdoc]

メソッドを private に設定します。

引数が与えられた時には引数によって指定されたメソッドを private に 設定します。

引数なしのときは今後このクラスまたはモジュール定義内で新規に定義さ れるメソッドを関数形式でだけ呼び出せるように(private)設定します。

[PARAM] name:
String または Symbol を 0 個以上指定します。
[EXCEPTION] NameError:
存在しないメソッド名を指定した場合に発生します。

[SEE_ALSO] Module#private

public(*name) -> Object[permalink][rdoc]

メソッドを public に設定します。

引数なしのときは今後このクラスまたはモジュール定義内で新規に定義さ れるメソッドをどんな形式でも呼び出せるように(public)設定します。

引数が与えられた時には引数によって指定されたメソッドを public に設 定します。

[PARAM] name:
String または Symbol を 0 個以上指定します。
[EXCEPTION] NameError:
存在しないメソッド名を指定した場合に発生します。

[SEE_ALSO] Module#public

using(module) -> self[permalink][rdoc]

引数で指定したモジュールで定義された拡張を有効にします。

有効にした拡張の有効範囲については以下を参照してください。

[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