Ruby でクラス名と同名のメソッドを定義する
Ruby ではクラスと同じ名前のメソッドを定義する事ができます。
class X end def X(a = nil) "X(#{a})" end # 何もつけなかった場合はクラスを参照 p X # => X # メソッドぽい呼び出しであればメソッドを参照 p X() # => "X()" p X 42 # => "X(42)"
この手のやつでよく利用されているのは Kernel.#Array
メソッドや Kernel.#Integer
メソッドですねー。
Array(arg)
もクラスではなくてメソッドを呼び出しています。