instance method helper

Ruby on Rails 2.3.18

Since v2.2.3 Last seen in v2.3.18

Available in: v2.2.3 v2.3.18

Signature

helper(*args, &block)

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.

Parameters

args rest
block block
Source
# File actionmailer/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

Defined in actionmailer/lib/action_mailer/helpers.rb line 42 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActionMailer::Helpers::ClassMethods

Type at least 2 characters to search.

↑↓ navigate · open · esc close