Ruby の ` メソッド
昨日、Ruby の単項演算子について調べていたんですが、` という演算子があったので調べてみました。
そもそも Ruby の ` は『シェルコマンドを実行する手段』ぐらいしか知らなかったんですが、これって Kernel のメソッドだったんですね…。
全然知らなかった…。
[ ` を再定義する]
class X def func str `#{str}` end def ` str str + str end end x = X.new x.send :`, "mami" # => "mamimami" x.func "homu" # => "homuhomu"
メソッド名はそのまま ` という名前で定義することができ、引数には ` ないの文字列が渡されます。
レシーバをつけて呼び出す方法がわからなかったので今回は #send とクラス内から直接呼び出しています。
もしシェルコマンドを実行する場合の ` の挙動を変えたい場合は `Kernel.#`` を再定義すればよさそう。