instance method
helper
Ruby on Rails 2.2.3
Since v2.2.3 Last seen in v2.3.18Available 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
-
argsrest -
blockblock
Source
# File actionmailer/lib/action_mailer/helpers.rb, line 40
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 40
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActionMailer::Helpers::ClassMethods