Class: BootstrapEmail::Converter::SupportUrlTokens
- Defined in:
- lib/bootstrap-email/converters/support_url_tokens.rb
Constant Summary collapse
- OPEN_BRACKETS =
CGI.escape('{{').freeze
- OPEN_PERCENT =
(CGI.escape('{') + '%').freeze
- CLOSE_BRACKETS =
CGI.escape('}}').freeze
- CLOSE_PERCENT =
('%' + CGI.escape('}')).freeze
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
Methods inherited from Base
Constructor Details
This class inherits a constructor from BootstrapEmail::Converter::Base
Class Method Details
.replace(html) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/bootstrap-email/converters/support_url_tokens.rb', line 11 def self.replace(html) regex = /((href|src)=("|'))(.*?((#{Regexp.quote(OPEN_BRACKETS)}|#{Regexp.quote(OPEN_PERCENT)}).*?(#{Regexp.quote(CLOSE_BRACKETS)}|#{Regexp.quote(CLOSE_PERCENT)})).*?)("|')/ return unless regex.match?(html) inner_regex = /((#{Regexp.quote(OPEN_BRACKETS)}|#{Regexp.quote(OPEN_PERCENT)}).*?(#{Regexp.quote(CLOSE_BRACKETS)}|#{Regexp.quote(CLOSE_PERCENT)}))/ html.gsub!(regex) do |_match| start_text = Regexp.last_match(1) middle_text = Regexp.last_match(4) end_text = Regexp.last_match(8) middle_text.gsub!(inner_regex) do |match| CGI.unescape(match) end "#{start_text}#{middle_text}#{end_text}" end end |