なぜこのプログラムを実行するとスタックレベルが高すぎるのか理解できません。class_evalルビーを使用中にスタックレベルが深すぎる(SystemStackError)
module A
class Fruit
def initialize
puts "pears"
end
[:orange, :apple].each do |fruit|
class_eval %Q{
def #{fruit}
puts #{fruit}
end
}
end
puts "pineapple"
end
a_fruit = Fruit.new
a_fruit.apple
end
another_fruit = A::Fruit.new
another_fruit.orange
このプログラムの出力は
(eval):3:in `apple': stack level too deep (SystemStackError)
from (eval):3:in `apple'
from testquestion.rb:20