module Newsletterable

Constants

VERSION

Public Class Methods

eager_load!() click to toggle source
# File lib/newsletterable.rb, line 29
def self.eager_load!
  # No autoloads
end

Public Instance Methods

configuration() click to toggle source
# File lib/newsletterable.rb, line 19
def configuration
        @@lock.synchronize do
                @@configuration ||= Configuration.new(defaults)
        end
end
configure() { |configuration| ... } click to toggle source
# File lib/newsletterable.rb, line 25
def configure
        yield configuration
end

Private Instance Methods

default_list_resolver() click to toggle source
# File lib/newsletterable.rb, line 60
def default_list_resolver
        -> (subscriber, list_name, lists) do
                result = case lists
                when String, Array
                        lists
                when Hash
                        lists[list_name]
                else
                        if lists.respond_to?(:call)
                                lists.call(subscriber)
                        end
                end

                Array.wrap(result)
        end
end
defaults() click to toggle source
# File lib/newsletterable.rb, line 35
        def defaults
                {
                        worker: Newsletterable::Worker,
                        list_resolver: default_list_resolver,
                        old_email_getter: -> (subscriber) {
                                if subscriber.respond_to?(:old_email)
                                        subscriber.old_email
                                elsif subscriber.respond_to?(:email_was)
                                        subscriber.email_was
                                else
                                        raise ConfigurationError, <<-TEXT, __FILE__, __LINE__ + 1
                                                Unable to retreive old email for update. Perhaps consider
                                                implementing 'old_email_getter' in your newsletterable initializer.

                                                e.g.
                                                config.old_email_getter = -> (user) do
                                                        # Get the updated email address from your model
                                                        user.email_before_update
                                                end
                                        TEXT
                                end
                        }
                }
        end