self.name == Fruit.find_by_name(n)
мне кажется неправильным.Разве вы не должны проверять
self.name == n
??
И вы действительно должны использовать instance_eval.
Кроме того, я думаю, что было бы более рубиновым, если назвать ваш метод оранжевым?вместо is_orange?.