You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

15 lines
460 B

6 months ago
module SafeJsObject
# Wraps a JSON object to be loaded as a JS object in a safe way.
#
# @example expected usage (my-template.erb), illustrated with a Visualization object
# <script>
# var vizdata = <%= safe_js_object vis.to_vizjson.to_json %>;
# </script>
#
# @return string
def safe_js_object(obj)
# see http://api.rubyonrails.org/v3.2.21/classes/ERB/Util.html#method-c-j
raw "JSON.parse('#{ j(obj.html_safe) }')"
end
end