diff --git a/lib/awestruct/extensions/obfuscate.rb b/lib/awestruct/extensions/obfuscate.rb index bf5a7bcf..b09afd63 100644 --- a/lib/awestruct/extensions/obfuscate.rb +++ b/lib/awestruct/extensions/obfuscate.rb @@ -3,10 +3,20 @@ module Extensions module Obfuscate def mail_to(email, options={}) - index = email.index('@') or raise "email needs to contain @" + index = email.index('@') or raise "email needs to contain one @" index += 3 - parts = [ email[0...index], email[index..-1] ] - "#{hex(parts[0])}#{hex(parts[1])}" + + 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)}#{hex(domain)}" + end + + "#{content}" end private