blazer_json_escape.rb 571 B

123456789101112131415
  1. module BlazerJsonEscape
  2. JSON_ESCAPE = { '&' => '\u0026', '>' => '\u003e', '<' => '\u003c', "\u2028" => '\u2028', "\u2029" => '\u2029' }
  3. JSON_ESCAPE_REGEXP = /[\u2028\u2029&><]/u
  4. # Prior to version 4.1 of rails double quotes were inadventently removed in json_escape.
  5. # This adds the correct json_escape functionality to rails versions < 4.1
  6. def blazer_json_escape(s)
  7. if Rails::VERSION::STRING < "4.1"
  8. result = s.to_s.gsub(JSON_ESCAPE_REGEXP, JSON_ESCAPE)
  9. s.html_safe? ? result.html_safe : result
  10. else
  11. json_escape(s)
  12. end
  13. end
  14. end