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