From 577c3d8149acbd483120847b994582268f93c0b3 Mon Sep 17 00:00:00 2001 From: Azul Date: Thu, 13 Dec 2012 16:07:31 +0100 Subject: refactor: Email constructor now takes string or hash This allows us to reuse add_email from email_aliases_attributes= --- users/app/models/email.rb | 5 +++++ users/app/models/user.rb | 7 +++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/users/app/models/email.rb b/users/app/models/email.rb index 45101c1..4b01838 100644 --- a/users/app/models/email.rb +++ b/users/app/models/email.rb @@ -6,6 +6,11 @@ class Email validates :email, :format => { :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/, :message => "needs to be a valid email address"} + def initialize(attributes = nil, &block) + attributes = {:email => attributes} if attributes.is_a? String + super(attributes, &block) + end + def to_s email end diff --git a/users/app/models/user.rb b/users/app/models/user.rb index 7c9002b..b531dfd 100644 --- a/users/app/models/user.rb +++ b/users/app/models/user.rb @@ -113,16 +113,15 @@ class User < CouchRest::Model::Base end def add_email(email) - email = LocalEmail.new({:email => email}) unless email.is_a? Email + email = LocalEmail.new(email) unless email.is_a? Email email_aliases << email end # this currently only adds the first email address submitted. # All the ui needs for now. def email_aliases_attributes=(attrs) - if attrs - email_alias = LocalEmail.new(attrs.values.first) - email_aliases << email_alias + if attrs && attrs.values.first + add_email attrs.values.first end end -- cgit v1.2.3