Class/Module Index [+]

Quicksearch

ActionMailer::Helpers::ClassMethods

Public Instance Methods

helper(*args, &block) click to toggle source

Declare a helper:

helper :foo

requires ‘foo_helper’ and includes FooHelper in the template class.

helper FooHelper

includes FooHelper in the template class.

helper { def foo() "#{bar} is the very best" end }

evaluates the block in the template class, adding method foo.

helper(:three, BlindHelper) { def mice() 'mice' end }

does all three.

# File lib/action_mailer/helpers.rb, line 42
def helper(*args, &block)
  args.flatten.each do |arg|
    case arg
      when Module
        add_template_helper(arg)
      when String, Symbol
        file_name  = arg.to_s.underscore + '_helper'
        class_name = file_name.camelize

        begin
          require_dependency(file_name)
        rescue LoadError => load_error
          requiree = / -- (.*?)(\.rb)?$/.match(load_error.message).to_a[1]
          msg = (requiree == file_name) ? "Missing helper file helpers/#{file_name}.rb" : "Can't load file: #{requiree}"
          raise LoadError.new(msg).copy_blame!(load_error)
        end

        add_template_helper(class_name.constantize)
      else
        raise ArgumentError, 'helper expects String, Symbol, or Module argument'
    end
  end

  # Evaluate block in template class if given.
  master_helper_module.module_eval(&block) if block_given?
end
helper_attr(*attrs) click to toggle source

Declare a controller attribute as a helper. For example,

helper_attr :name
attr_accessor :name

makes the name and name= controller methods available in the view. The is a convenience wrapper for helper_method.

# File lib/action_mailer/helpers.rb, line 88
def helper_attr(*attrs)
  attrs.flatten.each { |attr| helper_method(attr, "#{attr}=") }
end
helper_method(*methods) click to toggle source

Declare a controller method as a helper. For example,

helper_method :link_to
def link_to(name, options) ... end

makes the link_to controller method available in the view.

# File lib/action_mailer/helpers.rb, line 73
def helper_method(*methods)
  methods.flatten.each do |method|
    master_helper_module.module_eval             def #{method}(*args, &block)              controller.__send__(%(#{method}), *args, &block)            end
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.