helper (ActionMailer::Helpers::ClassMethods)

    # File 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