module RenderAsJs::ViewHelpers
Public Instance Methods
render_as_js(obj, options={})
click to toggle source
# File lib/render_as_js/view_helpers.rb, line 3 def render_as_js obj, options={} if obj.is_a?(Hash) return hash_to_js_obj obj elsif obj.is_a?(Array) return array_to_js_obj obj elsif obj.is_a?(Date) date_to_js_obj obj elsif obj.is_a?(DateTime) date_to_js_obj obj elsif obj.is_a?(String) string_to_js_obj obj elsif obj.is_a?(Symbol) symbol_to_js_obj obj, options elsif obj.is_a?(NilClass) nil_to_js_obj obj else return sanitize(obj.to_s) end end
Private Instance Methods
array_to_js_obj(arr)
click to toggle source
# File lib/render_as_js/view_helpers.rb, line 45 def array_to_js_obj arr "[#{arr.collect{|a| render_as_js(a)}.join(", ")}]".html_safe end
date_to_js_obj(date)
click to toggle source
# File lib/render_as_js/view_helpers.rb, line 41 def date_to_js_obj date return "new Date('#{date}')".html_safe end
hash_to_js_obj(hash)
click to toggle source
# File lib/render_as_js/view_helpers.rb, line 49 def hash_to_js_obj hash rv = [] hash.each do |k,v| rv << "#{render_as_js k, {key: true}}: #{render_as_js v}" end return "{#{rv.join(', ')}}".html_safe end
nil_to_js_obj(obj)
click to toggle source
# File lib/render_as_js/view_helpers.rb, line 29 def nil_to_js_obj obj return 'null' end
string_to_js_obj(string)
click to toggle source
# File lib/render_as_js/view_helpers.rb, line 25 def string_to_js_obj string return "\'#{sanitize string}\'".html_safe end
symbol_to_js_obj(symbol, options={})
click to toggle source
# File lib/render_as_js/view_helpers.rb, line 33 def symbol_to_js_obj symbol, options={} if options[:key] and !symbol.inspect.match?(/\"/) return symbol.to_s.html_safe else return string_to_js_obj symbol.to_s end end