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) もクラスではなくてメソッドを呼び出しています。