Refactor: extract methods to a module and class helper, dollarized_attribute

This commit is contained in:
Eric Davis
2010-09-23 11:25:16 -07:00
parent 83e3023d85
commit 56a38fbd93
5 changed files with 31 additions and 31 deletions
+23
View File
@@ -0,0 +1,23 @@
# Shared module to allow seting an attribute using:
# * Dollar amount - $1,000.00
# * Number - 100.00
module DollarizedAttribute
module ClassMethods
# dollarized_attribute(:budget) will create a budget=(value) method
def dollarized_attribute(attribute)
define_method(attribute.to_s + '=') {|value|
if value.is_a? String
write_attribute(attribute, value.gsub(/[$ ,]/, ''))
else
write_attribute(attribute, value)
end
}
end
end
def self.included(base)
base.extend ClassMethods
end
end