Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Moduleクラス

class Module

クラス・モジュールの継承リスト: Module < Object < Kernel < BasicObject

要約

モジュールのクラスです。

特異メソッド

定義 説明
constants -> [Symbol]

このメソッドを呼び出した時点で参照可能な定数名の配列を返します。

nesting -> [Class, Module]

このメソッドを呼び出した時点でのクラス/モジュールのネスト情報を配列に入れて返します。

new -> Module
new {|mod| ... } -> Module

名前の付いていないモジュールを新しく生成して返します。

used_modules -> [Module]

現在のスコープで using されているすべてのモジュールを配列で返します。配列内のモジュールの順番は未定義です。

インスタンスメソッド

定義 説明
self < other -> bool | nil

比較演算子。self が other の子孫である場合、 true を返します。 self が other の先祖か同一のクラス/モジュールである場合、false を返します。

self <= other -> bool | nil

比較演算子。self が other の子孫であるか、self と other が同一クラスである場合、 true を返します。 self が other の先祖である場合、false を返します。

self <=> other -> Integer | nil

self と other の継承関係を比較します。

self === obj -> bool

指定された obj が self かそのサブクラスのインスタンスであるとき真を返します。また、obj が self をインクルードしたクラスかそのサブクラスのインスタンスである場合にも真を返します。上記のいずれでもない場合に false を返します。

self > other -> bool | nil

比較演算子。 self が other の先祖である場合、true を返します。 self が other の子孫か同一クラスである場合、false を返します。

self >= other -> bool | nil

比較演算子。self が other の先祖か同一クラスである場合、 true を返します。 self が other の子孫である場合、false を返します。

alias_method(new, original) -> self

メソッドの別名を定義します。

ancestors -> [Class, Module]

クラス、モジュールのスーパークラスとインクルードしているモジュールを優先順位順に配列に格納して返します。

attr(*name) -> nil
attr(name, true) -> nil
attr(name, false) -> nil

インスタンス変数読み取りのためのインスタンスメソッド name を定義します。

attr_accessor(*name) -> nil

インスタンス変数 name に対する読み取りメソッドと書き込みメソッドの両方を定義します。

attr_reader(*name) -> nil

インスタンス変数 name の読み取りメソッドを定義します。

attr_writer(*name) -> nil

インスタンス変数 name への書き込みメソッド (name=) を定義します。

autoload(const_name, feature) -> nil

定数 const_name を最初に参照した時に feature を Kernel.#require するように設定します。

autoload?(const_name) -> String | nil

autoload 定数がまだ定義されてない(ロードされていない) ときにそのパス名を返します。また、ロード済みなら nil を返します。

module_eval(expr, fname = "(eval)", lineno = 1) -> object
module_eval {|mod| ... } -> object
class_eval(expr, fname = "(eval)", lineno = 1) -> object
class_eval {|mod| ... } -> object

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

module_exec(*args) {|*vars| ... } -> object
class_exec(*args) {|*vars| ... } -> object

与えられたブロックを指定された args を引数としてモジュールのコンテキストで評価します。

class_variable_defined?(name) -> bool

name で与えられた名前のクラス変数がモジュールに存在する場合 true を返します。

class_variable_get(name) -> object

クラス/モジュールに定義されているクラス変数 name の値を返します。

class_variable_set(name, val) -> object

クラス/モジュールにクラス変数 name を定義して、その値として val をセットします。val を返します。

class_variables(inherit = true) -> [Symbol]

クラス/モジュールに定義されているクラス変数の名前の配列を返します。

const_defined?(name, inherit = true) -> bool

モジュールに name で指定される名前の定数が定義されている時真を返します。

const_get(name, inherit = true) -> object

name で指定される名前の定数の値を取り出します。

const_missing(name)

定義されていない定数を参照したときに Ruby インタプリタがこのメソッドを呼びます。

const_set(name, value) -> object

モジュールに name で指定された名前の定数を value という値として定義し、value を返します。

constants(inherit = true) -> [Symbol]

そのモジュール(またはクラス)で定義されている定数名の配列を返します。

define_method(name, method) -> Symbol
define_method(name) { ... } -> Symbol

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

deprecate_constant(*name) -> self

name で指定した定数を deprecate に設定します。 deprecate に設定した定数を参照すると警告メッセージが表示されます。

freeze -> self

モジュールを凍結(内容の変更を禁止)します。

include(*mod) -> self

モジュール mod をインクルードします。

include?(mod) -> bool

self かその親クラス / 親モジュールがモジュール mod をインクルードしていれば true を返します。

included_modules -> [Module]

self にインクルードされているモジュールの配列を返します。

name -> String | nil
to_s -> String
inspect -> String

モジュールやクラスの名前を文字列で返します。

instance_method(name) -> UnboundMethod

self のインスタンスメソッド name をオブジェクト化した UnboundMethod を返します。

instance_methods(inherited_too = true) -> [Symbol]

そのモジュールで定義されている public および protected メソッド名の一覧を配列で返します。

method_defined?(name) -> bool

モジュールにインスタンスメソッド name が定義されており、かつその可視性が public または protected であるときに true を返します。

prepend(*modules) -> self

指定したモジュールを self の継承チェインの先頭に「追加する」ことで self の定数、メソッド、モジュール変数を「上書き」します。

private_class_method(*name) -> self

name で指定したクラスメソッド (クラスの特異メソッド) の可視性を private に変更します。

private_constant(*name) -> self

name で指定した定数の可視性を private に変更します。

private_instance_methods(inherited_too = true) -> [Symbol]

そのモジュールで定義されている private メソッド名の一覧を配列で返します。

private_method_defined?(name) -> bool

インスタンスメソッド name がモジュールに定義されており、しかもその可視性が private であるときに true を返します。そうでなければ false を返します。

protected_instance_methods(inherited_too = true) -> [Symbol]

そのモジュールで定義されている protected メソッド名の一覧を配列で返します。

protected_method_defined?(name) -> bool

インスタンスメソッド name がモジュールに定義されており、しかもその可視性が protected であるときに true を返します。そうでなければ false を返します。

public_class_method(*name) -> self

name で指定したクラスメソッド (クラスの特異メソッド) の可視性を public に変更します。

public_constant(*name) -> self

name で指定した定数の可視性を public に変更します。

public_instance_method(name) -> UnboundMethod

self の public インスタンスメソッド name をオブジェクト化した UnboundMethod を返します。

public_instance_methods(inherited_too = true) -> [Symbol]

そのモジュールで定義されている public メソッド名の一覧を配列で返します。

public_method_defined?(name) -> bool

インスタンスメソッド name がモジュールに定義されており、しかもその可視性が public であるときに true を返します。そうでなければ false を返します。

remove_class_variable(name) -> object

引数で指定したクラス変数を取り除き、そのクラス変数に設定されていた値を返します。

remove_method(*name) -> self

インスタンスメソッド name をモジュールから削除します。

singleton_class? -> bool

self が特異クラスの場合に true を返します。そうでなければ false を返します。

undef_method(*name) -> self

このモジュールのインスタンスメソッド name を未定義にします。

privateメソッド

定義 説明
append_features(module_or_class) -> self

モジュール(あるいはクラス)に self の機能を追加します。

extend_object(obj) -> object

Object#extend の実体です。オブジェクトにモジュールの機能を追加します。

extended(obj) -> ()

self が他のオブジェクト に Object#extend されたときに呼ばれます。引数には extend を行ったオブジェクトが渡されます。

included(class_or_module) -> ()

self が Module#include されたときに対象のクラスまたはモジュールを引数にしてインタプリタがこのメソッドを呼び出します。

method_added(name) -> ()

メソッド name が追加された時にインタプリタがこのメソッドを呼び出します。

method_removed(name) -> ()

メソッドが Module#remove_method により削除された時にインタプリタがこのメソッドを呼び出します。

method_undefined(name) -> ()

このモジュールのインスタンスメソッド name が Module#undef_method によって削除されるか、 undef 文により未定義にされると、インタプリタがこのメソッドを呼び出します。

module_function(*name) -> self

メソッドをモジュール関数にします。

prepend_features(mod) -> self

Module#prepend から呼び出されるメソッドで、 prepend の処理の実体です。このメソッド自体は mod で指定したモジュール/クラスの継承チェインの先頭に self を追加します。

prepended(class_or_module) -> ()

self が Module#prepend されたときに対象のクラスまたはモジュールを引数にしてインタプリタがこのメソッドを呼び出します。

private(*name) -> self

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

protected(*name) -> self

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

public(*name) -> self

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

refine(klass) { ... } -> Module

引数 klass で指定したクラスまたはモジュールだけに対して、ブロックで指定した機能を提供できるモジュールを定義します。定義した機能は Module#refine を使用せずに直接 klass に対して変更を行う場合と異なり、限られた範囲のみ有効にできます。そのため、既存の機能を局所的に修正したい場合などに用いる事ができます。

remove_const(name) -> object

name で指定した定数を取り除き、その定数に設定されていた値を返します。

using(module) -> self

引数で指定したモジュールで定義された拡張を現在のクラス、モジュールで有効にします。

継承したメソッド

! != __id__ __send__ instance_eval instance_exec method_missing singleton_method_added singleton_method_removed singleton_method_undefined !~ == =~ _dump class clone define_singleton_method display enum_for eql? equal? extend frozen? hash initialize initialize_copy instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? itself marshal_dump marshal_load method methods nil? object_id pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods psych_to_yaml public_method public_methods public_send remove_instance_variable respond_to? respond_to_missing? send singleton_class singleton_method singleton_methods taint tainted? tap to_a to_ary to_hash to_int to_io to_proc to_regexp to_str trust untaint untrust untrusted? yield_self .yaml_tag ::ARGF ::ARGV ::DATA ::ENV ::FALSE ::NIL ::RUBY_COPYRIGHT ::RUBY_DESCRIPTION ::RUBY_ENGINE ::RUBY_ENGINE_VERSION ::RUBY_PATCHLEVEL ::RUBY_PLATFORM ::RUBY_RELEASE_DATE ::RUBY_REVISION ::RUBY_VERSION ::SCRIPT_LINES__ ::STDERR ::STDIN ::STDOUT ::TOPLEVEL_BINDING ::TRUE

追加されるメソッド

定義 説明 ライブラリ
rake_extension(method) { ... } -> ()

与えられたブロック内で既に存在するメソッドを再定義しようとした場合に警告を表示します。この場合、ブロックは評価されません。

rake