Class: ActionMessage::Base

Inherits:
AbstractController::Base
  • Object
show all
Includes:
AbstractController::Callbacks, AbstractController::Logger, AbstractController::Rendering, ActionView::Layouts
Defined in:
lib/action_message/base.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBase



58
59
60
61
62
# File 'lib/action_message/base.rb', line 58

def initialize
  super
  @_message_was_called = false
  @_message = Message.new
end

Instance Attribute Details

#template_nameObject

Returns the value of attribute template_name.



56
57
58
# File 'lib/action_message/base.rb', line 56

def template_name
  @template_name
end

#template_pathObject

Returns the value of attribute template_path.



56
57
58
# File 'lib/action_message/base.rb', line 56

def template_path
  @template_path
end

Class Method Details

.base_pathsObject



39
40
41
42
43
44
45
46
47
# File 'lib/action_message/base.rb', line 39

def base_paths
  %w(
    app/views
    app/views/messages
    app/views/mailers
    app/views/application
    app/views/layouts
  ).freeze
end

.default(value = nil) ⇒ Object Also known as: default_options=

Sets the defaults through app configuration: config.action_message.default(from: “+11231231234”)

Aliased by ::default_options=



30
31
32
33
# File 'lib/action_message/base.rb', line 30

def default(value = nil)
  self.default_params = default_params.merge(value).freeze if value
  default_params
end

Instance Method Details

#full_template_pathObject



81
82
83
# File 'lib/action_message/base.rb', line 81

def full_template_path
  [template_path, template_name].join('/')
end

#sms(params = {}, &block) ⇒ Object

Raises:

  • (ArgumentError)


64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/action_message/base.rb', line 64

def sms(params = {}, &block)
  raise ArgumentError, 'You need to provide at least a receipient' if params[:to].blank?
  return message if @_message_was_called && !block

  self.template_name = params[:template_name].presence || template_name
  self.template_path = params[:template_path].presence || template_path

  @_message_was_called = true
  lookup_context.view_paths = (lookup_context.view_paths.to_a + self.class.base_paths).flatten.uniq

  message.to = params[:to]
  message.debug = params[:debug]
  message.body = params[:body] || render(full_template_path)

  message
end