Module: PhonyAttribute::Attribute::ClassMethods

Defined in:
lib/phony_attribute/attribute.rb

Instance Method Summary collapse

Instance Method Details

#phone_attribute(*attributes) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/phony_attribute/attribute.rb', line 6

def phone_attribute(*attributes)
  options = attributes.extract_options!

  attributes.each do |attribute|
    serialize attribute, PhonyAttribute::PhoneNumber

    method_body, line = <<-EOV, __LINE__ + 1
      def #{attribute}=(original_phone_number)
        write_attribute(:#{attribute}, PhonyAttribute::PhoneNumber(original_phone_number))
      end
    EOV
    
    class_eval method_body, __FILE__, line
  end
end