já percebi, sim, estando o if dentro do define_method vai ser sempre avaliado e é escusado