class Textris::Base

Public Class Methods

defaults() click to toggle source
# File lib/textris/base.rb, line 25
def defaults
  @defaults ||= superclass.respond_to?(:defaults) ? superclass.defaults.dup : {}
end
deliveries() click to toggle source
# File lib/textris/base.rb, line 17
def deliveries
  ::Textris::Delivery::Test.deliveries
end
new(action, *args) click to toggle source
# File lib/textris/base.rb, line 46
def initialize(action, *args)
  @action = action
  @args   = args
end
with_defaults(options) click to toggle source
# File lib/textris/base.rb, line 21
def with_defaults(options)
  defaults.merge(options)
end

Protected Class Methods

default(options) click to toggle source
# File lib/textris/base.rb, line 31
def default(options)
  defaults.merge!(options)
end

Private Class Methods

method_missing(method_name, *args) click to toggle source
# File lib/textris/base.rb, line 37
def method_missing(method_name, *args)
  new(method_name, *args).call_action
end
respond_to_missing?(method, *args) click to toggle source
Calls superclass method
# File lib/textris/base.rb, line 41
def respond_to_missing?(method, *args)
  public_instance_methods(true).include?(method) || super
end

Public Instance Methods

call_action() click to toggle source
# File lib/textris/base.rb, line 51
def call_action
  send(@action, *@args)
end
render_content() click to toggle source
# File lib/textris/base.rb, line 55
def render_content
  set_instance_variables_for_rendering

  render(:template => template_name, :formats => ['text'], :locale => @locale)
end

Protected Instance Methods

text(options = {}) click to toggle source
# File lib/textris/base.rb, line 63
def text(options = {})
  @locale = options[:locale] || I18n.locale

  options = self.class.with_defaults(options)
  options.merge!(
    :texter     => self.class,
    :action     => @action,
    :args       => @args,
    :content    => options[:body].is_a?(String) ? options[:body] : nil,
    :renderer   => self)

  ::Textris::Message.new(options)
end

Private Instance Methods

set_instance_variables_for_rendering() click to toggle source
# File lib/textris/base.rb, line 86
def set_instance_variables_for_rendering
  instance_variables.each do |var|
    set_instance_variable(var.to_s.sub('@', ''), instance_variable_get(var))
  end
end
template_name() click to toggle source
# File lib/textris/base.rb, line 79
def template_name
  class_name  = self.class.to_s.underscore.sub('texter/', '')
  action_name = @action

  "#{class_name}/#{action_name}"
end