モジュールのクラス.
Object
self < other
self <= other
self > other
self >= other
比較演算子.self
がotherのスーパーク
ラスである時,self > otherが成立します.
self === obj
このメソッドは主にcase
文での比較に用いられます。
objがselfとkind_of?
の関係がある時,真になります.つまり,
case
ではクラス,モジュールの所属関係をチェックすることになります.
alias_method(new,old)
alias
と同様にメ
ソッドの別名を定義します.違いは以下の通りです.
append_features(module_or_class)
モジュール(あるいはクラス)に別のモジュールの機能を追加します.
Module#include
の実体です.
attr(name[, asignable])
そのモジュールをインクルードするクラスのインスタンスに対して nameという属性とそのアクセスメソッドを定義します. アクセスメソッドの定義は次の通りです.
def attr; @attr; end
省略可能な第2引数asignableが指定され,その値が真であ
る場合には書き込みメソッドname=
も同時に定義され
ます.その定義は以下の通りです.
def attr=(val); @attr = val; end
アクセスメソッドを再定義することで属性の挙動を変更できます. 例えば書き込みメソッドを以下のように定義することで代入された 値をプリントできます.
attr("test", TRUE) def test=(val) print("test was ", @test, "\n") print("and now is ", @test = val, "\n") end
attr_reader(name, ...)
nameで指定された名称の属性の読みだしメソッドを定義します.
attr_writer(name, ...)
nameで指定された名称の属性の更新メソッド
(name=
)を定義します.
attr_accessor(name, ...)
nameで指定された名称の属性に対して読みだしメソッ ドと更新メソッドの両方を定義します.
ancestors
そのモジュールでインクルードしているモジュールを優先順位順に 配列に格納して返します.
class_eval(src)
class_eval{...}
module_evalの別名.
constants
そのモジュール(またはクラス)で定義されている定数名の配列を返 します.
const_defined?(name)
モジュールにnameで指定される名前の定数が定義され ている時真を返します.
const_get(name)
モジュールに定義されているnameで指定される名前の
定数の値を取り出します.定数が定義されていない時には例外
NameError
が発生します.
const_set(name, value)
モジュールにnameで指定された名前の定数を
valueという値として定義します.そのモジュールにお
いてすでにその名前の定数が定義されている場合,例外
NameError
が発生します.
extend_object(object)
オブジェクトにモジュールの機能を追加します.
Object#extend
の実体です.
include(module...)
指定されたモジュールの性質(メソッドや定数)を追加します.
include
は多重継承の代わりに用いられるMix-inを実
現するために使われます.
included_modules
インクルードされているモジュールの配列を返します.
instance_methods
そのモジュールで定義されているメソッド名の一覧を返します.
method_added(id)
メソッドが追加された時にインタプリタから呼び出されます.
method_defined?(id)
インスタンスがidで指定されたメソッドを持っている 時,真を返します.
module_eval(expr)
module_eval{...}
モジュールのコンテキストでexprとして与えられた文 字列を評価します.ブロックが与えられた場合には文字列ではな くブロックをモジュールのコンテキストで評価します.
モジュールのコンテキストでは
module_eval
の外側のスコープと
共有します.
module_function(name...)
nameで指定されたメソッドをモジュール関数にします.
モジュール関数とは通常のメソッドであると同時にモジュール(ま
たはクラス)の特異メソッドでもあるようなメソッドです.例えば
Math
モジュールで定義さ
れているメソッドがモジュール関数です
name()
モジュールの名前を返します.
private(name...)
引数が与えられない時,今後このクラスまたはモジュール定義内で 新規に定義されるメソッドを関数形式でだけ呼び出せるように (private)設定します.
引数が与えられた時には引数によって指定されたメソッドをprivate に設定します.
例:
module Foo def foo1() 1 end # デフォルトではpublic private # 可視性をprivateに変更 def foo2() 2 end # foo2はprivateメソッド end foo = Foo.new foo.foo1 => 1 foo.foo2 error--> private method `foo2' called #<Foo:0x4011ad8c>(Foo)
private_instance_methods
そのモジュールで定義されているprivateメソッド名の一覧を返します.
protected(name...)
引数が与えられない時,今後このクラスまたはモジュール定義内で 新規に定義されるメソッドをprotectedに設定します.protectedと はそのメソッドが定義されているクラスまたはそのサブクラスから しか呼び出すことができないという意味です.
引数が与えられた時には引数によって指定されたメソッドをprotected に設定します.
public(name...)
引数が与えられない時,今後このクラスまたはモジュール定義内で 新規に定義されるメソッドをどんな形式でも呼び出せるように (public)設定します.
引数が与えられた時には引数によって指定されたメソッドをpublic に設定します.
例:
def foo() 1 end foo => 1 self.foo # the toplevel default is private error--> private method `foo' called for "main"(Object) def bar() 2 end public :bar # visibility changed (all access allowed) bar => 2 self.bar => 2
private_class_method(name, ...)
public_class_method(name, ...)
nameで指定したクラスメソッド(クラスの特異メソッド) の可視性を変更します.
remove_const(name)
nameで指定した定数を取り除きます.もし指定した定
数がそのモジュール(またはクラス)で定義されていない時,
NameError
例外が発生します.
remove_method(name)
nameで指定したメソッドをモジュールから取り除きま
す.もし指定したメソッドが存在しない時には
NameError
例外が発生します.
undef_method(name)
nameで指定したメソッドの定義を取り消します.
undef
との違いは
メソッド指定を文字列またはID(整数)で行う点です.
nesting
このメソッドを呼び出した時点でのクラス/モジュールのネスト情 報を配列に入れて返します.
new
新しく名前の付いていないモジュールを生成します.