module Maktoub

Constants

VERSION

Attributes

app_name[RW]
email_field[W]
facebook_url[RW]
from[RW]
google_plus_url[RW]
home_domain[RW]
linkedin_url[RW]
name_field[W]
subscription_preferences_url[RW]
twitter_url[RW]
unsubscribe_method[RW]

Public Class Methods

email_field() click to toggle source
# File lib/maktoub.rb, line 18
def email_field
  @email_field || :email
end
home_url() click to toggle source
# File lib/maktoub.rb, line 48
def home_url
  "http://" + home_domain
end
name_field() click to toggle source
# File lib/maktoub.rb, line 22
def name_field
  @name_field || :name
end
subscribers() click to toggle source
# File lib/maktoub.rb, line 26
def subscribers
  @subscribers.call
end
subscribers_extractor(&block) click to toggle source
# File lib/maktoub.rb, line 30
def subscribers_extractor (&block)
  @subscribers = Proc.new &block
end
unsubscribe(email) click to toggle source
# File lib/maktoub.rb, line 34
def unsubscribe(email)
  if Maktoub.subscribers.class.parents.include?(ActiveRecord) #check if ActiveRecord relation
    subscriber = subscribers.find_by(email_field => email)
    subscriber.send(unsubscribe_method) if subscriber.present?
  else
    puts 'WARNING!!! Use ActiveRecord query methods to find subscribers. Falling back to iterating through subscribers array (slow!).'
    subscribers.select do |s| 
      s.send(email_field) == email     
    end.each do |s|
      s.send(unsubscribe_method) if unsubscribe_method
    end
  end
end