Sha256: 3a0dfc85ff69733fce9ec3607a1c2c51ef9a2129e65cb8ea55a6c8a300943438

Contents?: true

Size: 536 Bytes

Versions: 21

Compression:

Stored size: 536 Bytes

Contents

needed = "".respond_to?(:html_safe) and
  (
    "".html_safe % {:x => '<br/>'} == '<br/>' or
    not ("".html_safe % {:x=>'a'}).html_safe?
  )

if needed
  class String
    alias :interpolate_without_html_safe :%

    def %(*args)
      if args.first.is_a?(Hash) and html_safe?
        safe_replacement = Hash[args.first.map{|k,v| [k,ERB::Util.h(v)] }]
        interpolate_without_html_safe(safe_replacement).html_safe
      else
        interpolate_without_html_safe(*args).dup # make sure its not html_safe
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
gettext_i18n_rails-0.2.15 lib/gettext_i18n_rails/string_interpolate_fix.rb