module EmailAttribute::Attribute::ClassMethods

Public Instance Methods

email_address_attribute(*attributes) click to toggle source
# File lib/email_attribute/attribute.rb, line 23
      def email_address_attribute(*attributes)
        options = attributes.extract_options!

        attributes.each do |attribute|
          serialize attribute, EmailAttribute::SingleAddress

          method_body, line = <<-EOV, __LINE__ + 1
            def #{attribute}=(email_address)
              write_attribute(:#{attribute}, EmailAttribute::SingleAddress.new(email_address))
            end
          EOV

          class_eval method_body, __FILE__, line
        end
      end
email_address_list_attribute(*attributes) click to toggle source
# File lib/email_attribute/attribute.rb, line 6
      def email_address_list_attribute(*attributes)
        options = attributes.extract_options!

        attributes.each do |attribute|
          serialize attribute, EmailAttribute::List

          method_body, line = <<-EOV, __LINE__ + 1
            def #{attribute}=(email_address)
              list = EmailAttribute::List.new(email_address) rescue email_address
              write_attribute(:#{attribute}, list)
            end
          EOV

          class_eval method_body, __FILE__, line
        end
      end