module Awestruct::Extensions::Obfuscate
Public Instance Methods
mail_to(email, options={})
click to toggle source
# File lib/awestruct/extensions/obfuscate.rb, line 5 def mail_to(email, options={}) index = email.index('@') or raise "email needs to contain one @" index += 3 headers = [ :subject, :body, :bcc, :cc ] & options.keys parameters = "?" + headers.map { |k| "#{k}=#{percent(options[k])}" }.join('&') if headers.length > 0 if options[:title] content = options[:title] else account, domain = [ email[0...index], email[index..-1] ] content = "#{hex(account)}<!--\nmailto:abuse@hotmail.com\n</a>\n-->#{hex(domain)}" end "<a target='_blank' class='#{options[:class]}\nhref=\"mailto:x@y\"\n'\nhref\n = '#{hex('mailto:' + email)}#{parameters}\n'>#{content}</a>" end
Private Instance Methods
hex(s)
click to toggle source
# File lib/awestruct/extensions/obfuscate.rb, line 24 def hex(s) result = '' s.each_codepoint do |cp| result << "&#x%x;" % [cp] end result end
percent(s)
click to toggle source
# File lib/awestruct/extensions/obfuscate.rb, line 32 def percent(s) result = '' s.each_codepoint do |cp| result << "%%%x" % [cp] end result end