Ruby で class_eval を使ってみる
Ruby
Published: 2019-07-20

やったこと

Ruby で class_eval を使ってみます。

確認環境

$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]

調査

test.rb

class Sample
end

Sample.class_eval %Q{
  def hoge
    p "Sample.class_eval"
    p "self.class: #{self.class}"
    p "__method__: #{__method__}"
  end
}

Sample.new.hoge

実行結果

$ ruby test.rb
"Sample.class_eval"
"self.class: Object"
"__method__: "

method は空になりました。

参考