Jak skrócić kod?

W modelu mam taki kod:

[code=ruby]def numberA=(numberA)
write_attribute(:numberA, numberA.gsub(/\D/, “”))
end

def numberB=(numberB)
write_attribute(:numberB, numberB.gsub(/\D/, “”))
end

def numberC=(numberC)
write_attribute(:numberC, numberC.gsub(/\D/, “”))
end[/code]
Jak to skrócić do jednego defa?

def set_number(value,name) write_attribute(name,value.gsub(/\D/,"")) end
Można też zrobić za pomocą method_missing, ale czy warto?

Ewentualnie define_method

Można wykorzystać meta programowanie, na podobnej zasadzie jak niektóre metody generowane są w gemie acts_as_list.

Tak, można co najmniej na 10 sposobów http://apohllo.pl/dydaktyka/ruby/intro/metaprogramowanie :wink: Tylko jeszcze raz pytam - czy to faktycznie ma swoje uzasadnienie?