class MandrillQueue::Mailer
Constants
- ACCESSORS
Public Class Methods
action_methods()
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 13 def action_methods klass = self klass = klass.superclass until klass == MandrillQueue::Mailer return [] if self == klass self.public_instance_methods(true) - klass.public_instance_methods(true) end
all_templates()
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 67 def all_templates action_methods.map do |method| template_from_method(method) end end
configuration()
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 33 def configuration MandrillQueue.configuration end
defaults(&block)
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 37 def defaults(&block) return @_defaults ||= {} unless block_given? mailer = new @_in_defaults = true mailer.instance_eval(&block) @_defaults = mailer.to_hash ensure @_in_defaults = false end
defaults=(hash)
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 48 def defaults=(hash) @_defaults = hash end
message_defaults()
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 52 def message_defaults md = configuration.message_defaults || {} md.merge!(defaults[:message]) unless @_in_defaults || defaults[:message].nil? md end
method_missing(method, *args)
click to toggle source
Calls superclass method
# File lib/mandrill_queue/mailer.rb, line 21 def method_missing(method, *args) if respond_to?(method) mailer = new(defaults) mailer.send(method, *args) mailer.template(template_from_method(method)) if mailer.template.blank? && !mailer.message.content_message? mailer else super end end
new(values = nil)
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 82 def initialize(values = nil) set!(values) unless values.nil? @_adapter_options = self.class.configuration.adapter_options || {} end
respond_to?(method, include_private = false)
click to toggle source
Calls superclass method
# File lib/mandrill_queue/mailer.rb, line 9 def respond_to?(method, include_private = false) super || action_methods.include?(method) end
template_prefix(*args)
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 58 def template_prefix(*args) @template_prefix = args.first unless args.count == 0 if @template_prefix.nil? "#{self.name.chomp('Mailer').sluggify}-" else @template_prefix end end
Private Class Methods
template_from_method(method)
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 74 def template_from_method(method) template = defaults[:template].blank? ? method.to_s.sluggify : defaults[:template] template_prefix + template end
Public Instance Methods
adapter_options(options = nil)
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 140 def adapter_options(options = nil) @_adapter_options.merge!(options) unless options.nil? @_adapter_options ||= {} end
deliver(options = {})
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 135 def deliver(options = {}) validate! MandrillQueue.adapter.enqueue_to(queue, worker_class, adapter_options.merge(options), to_hash) end
message(&block)
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 96 def message(&block) @_message ||= Message::Internal.new(self.class.message_defaults) @_message.dsl(&block) if block_given? block_given? ? self : @_message end
queue()
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 121 def queue @_queue ||= \ if instance_variable_defined?(:@queue) instance_variable_get(:@queue) elsif worker_class.instance_variable_defined?(:@queue) worker_class.instance_variable_get(:@queue) elsif worker_class.respond_to?(:queue) worker_class.queue else self.class.configuration.default_queue || :mailer end end
reset!()
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 87 def reset! ACCESSORS.each do |key| instance_variable_set("@#{key}", nil) end @_message = nil @_content = nil self end
set!(hash)
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 157 def set!(hash) hash.symbolize_keys! ACCESSORS.each do |key| instance_variable_set("@#{key}", hash[key]) end message.set!(hash[:message]) unless hash[:message].nil? content.set!(hash[:content]) unless hash[:content].nil? self end
to_hash(options = {})
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 145 def to_hash(options = {}) hash = {} ACCESSORS.each do |key| value = instance_variable_get("@#{key}".to_sym) hash[key] = value if options[:include_nil] || !value.nil? end hash[:message] = message.to_hash(options) rescue nil if !@_message.nil? || options[:include_nils] hash[:content] = content.to_key_value_array(options) rescue nil if !@_content.nil? || options[:include_nils] hash end
use_defaults!()
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 170 def use_defaults! set!(self.class.defaults) unless self.class.defaults.nil? self end
validate!()
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 175 def validate! errors = [] message.validate(errors) unless @_message.nil? raise MandrillValidationError.new(errors) unless errors.empty? self end
worker_class()
click to toggle source
# File lib/mandrill_queue/mailer.rb, line 117 def worker_class self.class.configuration.default_worker_class || ::MandrillQueue::Worker end