class Drill::Mailer
Attributes
action_name[R]
Public Class Methods
new(action_name)
click to toggle source
# File lib/drill/mailer.rb, line 24 def initialize(action_name) @action_name = action_name end
Private Class Methods
method_missing(method, *args)
click to toggle source
Calls superclass method
# File lib/drill/mailer.rb, line 13 def method_missing(method, *args) super unless respond_to_missing?(method) new(method).public_send(method, *args) end
respond_to_missing?(method, include_all = false)
click to toggle source
Calls superclass method
# File lib/drill/mailer.rb, line 19 def respond_to_missing?(method, include_all = false) public_instance_methods(false).include?(method) || super end
Public Instance Methods
mail(params = {})
click to toggle source
# File lib/drill/mailer.rb, line 28 def mail(params = {}) params[:template_name] ||= action_name params = Params.new(permitted_params(params)) params.merge_vars(vars_from_instance_variables) params.merge_vars(Drill.configuration.default_vars) Mail.new(params) end
Private Instance Methods
permitted_instance_variables()
click to toggle source
# File lib/drill/mailer.rb, line 54 def permitted_instance_variables instance_variables - %i[@action_name] end
permitted_params(params)
click to toggle source
# File lib/drill/mailer.rb, line 40 def permitted_params(params) params.slice(*Params.members) end
vars_from_instance_variables()
click to toggle source
# File lib/drill/mailer.rb, line 44 def vars_from_instance_variables permitted_instance_variables .each.with_object({}) do |instance_variable, vars| name = instance_variable.to_s.sub('@', '').to_sym content = instance_variable_get(instance_variable) vars[name] = content end end