Method deprecated or moved
  
    This method is deprecated or moved on the latest stable version.
    The last existing version (v2.3.8) is shown here.  
  
  
    
       
       
       These similar methods exist in v7.1.3.2:
       
    
  
 
  helper(*args, &block)
  public
  
    
    
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.
   
  
    Show source    
    
      
      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
        
        master_helper_module.module_eval(&block) if block_given?
      end