Ruby でスペースや記号が含まれている名前でメソッドを定義する

Rubyメソッドを定義する場合、名前には識別子(英数字+`)と再定義可能な演算子のみ使用する事ができます。 しかし、define_method` メソッドを使用するとスペースや記号を含んだ名前のメソッドを定義する事ができます。

class X
    # #define_method を使用してメソッドを定義する
    define_method "homu mami" do
        "homu mami method"
    end
end

x = X.new

# #send を使用してメソッドを呼び出す
p x.send "homu mami"
# => "homu mami method""

#define_method を使えばどんな名前の文字列でも定義する事ができます。
ただし、呼び出す場合は #send を使用して呼び出す必要があります。