Rubyダイナミックメソッド定義の違いについて

536 ワード


A.class_eval(<<-EOF, __FILE__, __LINE__ + 1)
  def method_a 
   puts "calling method_a......"
  end
EOF


A.class_eval <<-EOF
 def method_b
   puts "calling method_b......"
 end
EOF

A.new.method_a
A.new.method_b

以上のように、FILE、LINE+1を使用した場合、文字列コードブロックに投げ出された異常であっても、正しいファイルの中の位置が表示され、デバッグが容易になる点が2つの方法で定義されています