Class: MailManager::Contact

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
Deleteable, MailManager::ContactableRegistry::Contactable
Defined in:
app/models/mail_manager/contact.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Deleteable

#delete, included, #is_deleted?, #undelete

Methods included from MailManager::ContactableRegistry::Contactable

#active_subscriptions, #change_subscription_status, #contactable_method, #contactable_value, #get_subscription_atttributes_for_subscription, included, #reload, #save, #set_contactable_data, #subscribe, #subscription_status_for, #subscriptions, #unsubscribe, #update_contactable_data, #update_subscription_data

Class Method Details

.signup(params) ⇒ Object



68
69
70
71
72
73
74
# File 'app/models/mail_manager/contact.rb', line 68

def self.(params)
  contact = MailManager::Contact.active.find_by_email_address(params['email_address']) 
  contact ||= Contact.new
  Rails.logger.debug "Updating contact(#{contact.new_record? ? "New" : contact.id}) params: #{params.inspect}"
  contact.update_attributes(params)
  contact
end

Instance Method Details

#contactObject



20
21
22
# File 'app/models/mail_manager/contact.rb', line 20

def contact
  self
end

#deleted?Boolean

Returns:

  • (Boolean)


64
65
66
# File 'app/models/mail_manager/contact.rb', line 64

def deleted?
  !deleted_at.nil?
end

#email_address_with_nameObject



55
56
57
58
# File 'app/models/mail_manager/contact.rb', line 55

def email_address_with_name
  return %Q|"#{full_name}" <#{email_address}>|.gsub(/\s+/,' ') unless full_name.eql?('')
  email_address
end

#full_nameObject



60
61
62
# File 'app/models/mail_manager/contact.rb', line 60

def full_name
  "#{first_name} #{last_name}".strip
end

#initialize_subscriptionsObject



76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'app/models/mail_manager/contact.rb', line 76

def initialize_subscriptions
  @subscriptions = new_record? ? [] : Subscription.find_all_by_contact_id(self.id) 
  MailingList.active.each do |list|
    next if @subscriptions.detect{|subscription| subscription.mailing_list_id.eql?(list.id) }
    Rails.logger.warn "Building Subscription for Mailing List #{list.name}"
    subscription = Subscription.new(:contact => self)
    subscription.mailing_list_id = list.id 
    subscription.change_status((self.new_record? and list.defaults_to_active?) ? :active : :pending,false)
    @subscriptions << subscription
  end
  @subscriptions = subscriptions.reject{|subscription| subscription.mailing_list.try(:inactive?) or
    subscription.mailing_list.nil?}.sort_by{|subscription|
    subscription.mailing_list.name.downcase}
end