mail_to (ActionView::Helpers::UrlHelper)

    # File lib/action_view/helpers/url_helper.rb, line 427
          def mail_to(email_address, name = nil, html_options = {})
            html_options = html_options.stringify_keys
            encode = html_options.delete("encode").to_s
            cc, bcc, subject, body = html_options.delete("cc"), html_options.delete("bcc"), html_options.delete("subject"), html_options.delete("body")

            string = ''
            extras = ''
            extras << "cc=#{CGI.escape(cc).gsub("+", "%20")}&" unless cc.nil?
            extras << "bcc=#{CGI.escape(bcc).gsub("+", "%20")}&" unless bcc.nil?
            extras << "body=#{CGI.escape(body).gsub("+", "%20")}&" unless body.nil?
            extras << "subject=#{CGI.escape(subject).gsub("+", "%20")}&" unless subject.nil?
            extras = "?" << extras.gsub!(/&?$/,"") unless extras.empty?

            email_address = email_address.to_s

            email_address_obfuscated = email_address.dup
            email_address_obfuscated.gsub!(/@/, html_options.delete("replace_at")) if html_options.has_key?("replace_at")
            email_address_obfuscated.gsub!(/\./, html_options.delete("replace_dot")) if html_options.has_key?("replace_dot")

            if encode == "javascript"
              "document.write('#{content_tag("a", name || email_address, html_options.merge({ "href" => "mailto:"+email_address+extras }))}');".each_byte do |c|
                string << sprintf("%%%x", c)
              end
              "<script type=\"#{Mime::JS}\">eval(unescape('#{string}'))</script>"
            elsif encode == "hex"
              email_address_encoded = ''
              email_address_obfuscated.each_byte do |c|
                email_address_encoded << sprintf("&#%d;", c)
              end

              protocol = 'mailto:'
              protocol.each_byte { |c| string << sprintf("&#%d;", c) }

              email_address.each_byte do |c|
                char = c.chr
                string << (char =~ /\w/ ? sprintf("%%%x", c) : char)
              end
              content_tag "a", name || email_address_encoded, html_options.merge({ "href" => "#{string}#{extras}" })
            else
              content_tag "a", name || email_address_obfuscated, html_options.merge({ "href" => "mailto:#{email_address}#{extras}" })
            end
          end