Sha256: ba296910cbab14479134ff0f1ec6e78bdfad402e31371fc788d375ad3b0fe8ab

Contents?: true

Size: 552 Bytes

Versions: 21

Compression:

Stored size: 552 Bytes

Contents

# encoding: utf-8

# TODO: it can be in rack-contrib
module Rango
  module Middlewares
    class EmailObfuscator
      def initialize(app)
        @app = app
      end

      def call(env)
        status, headers, body = @app.call(env)
        if headers["Content-Type"] == "text/html"
          body = self.substitute(body)
        end
        [status, headers, body]
      end

      # TODO: is it OK everywhere? E. g. <script> or <style>
      def substitute(body)
        body.map { |chunk| chunk.gsub!("@", "&#x40;") }
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
rango-0.2 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.3 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.2.11 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.2.10 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.2.9 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.2.8 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.2.7 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.2.6 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.2.5 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.2.4 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.2.3 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.2.2 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.2.1 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.2.pre lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.2 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1.1 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.1 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.0 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.0.6 lib/rango/rack/middlewares/email_obfuscator.rb
rango-0.1.pre lib/rango/rack/middlewares/email_obfuscator.rb