lib/gon/escaper.rb
class Gon
module Escaper
extend ActionView::Helpers::JavaScriptHelper
extend ActionView::Helpers::TagHelper
class << self
def escape_unicode(javascript)
if javascript
result = escape_line_separator(javascript)
javascript.html_safe? ? result.html_safe : result
end
end
def javascript_tag(content, type, cdata, nonce)
options = {}
options.merge!( { type: 'text/javascript' } ) if type
options.merge!( { nonce: nonce } ) if nonce
content_tag(:script, javascript_cdata_section(content, cdata).html_safe, options)
end
def javascript_cdata_section(content, cdata)
if cdata
"\n//#{cdata_section("\n#{content}\n//")}\n"
else
"\n#{content}\n"
end
end
private
def escape_line_separator(javascript)
javascript.gsub(/\\u2028/u, '
')
end
end
end
end