class GMaps::JS

Constants

JS_ESCAPE_MAP

escape_javascript Copied from ActionView::Helpers::JavaScriptHelper

Public Class Methods

[](*args) click to toggle source
# File lib/gmaps/js.rb, line 6
def [](*args)
  self.new(*args)
end
new(str, *args) click to toggle source
# File lib/gmaps/js.rb, line 11
def initialize(str, *args)
  @str = if args.empty?
           str
         elsif args.length == 1 && args.first.is_a?(Hash)
           escaped_args = {}
           args.first.each { |k, v| escaped_args[k] = v.is_a?(String) ? escape_javascript(v) : v}
           str % (escaped_args)
         else
           args.map!{ |arg| arg.is_a?(String) ? escape_javascript(arg) : arg}
           str % args
         end
end

Public Instance Methods

escape_javascript(javascript) click to toggle source

Escapes carriage returns and single and double quotes for JavaScript segments.

Also available through the alias j(). This is particularly helpful in JavaScript responses, like:

$('some_element').replaceWith('<%=j render 'some/element_template' %>');
# File lib/gmaps/js.rb, line 52
def escape_javascript(javascript)
  if javascript
    result = javascript.gsub(/(\\|<\/|\r\n|\342\200\250|\342\200\251|[\n\r"'])/u) {|match| JS_ESCAPE_MAP[match] }
    javascript.html_safe? ? result.html_safe : result
  else
    ''
  end
end
inspect() click to toggle source
# File lib/gmaps/js.rb, line 24
def inspect
  @str
end
Also aliased as: to_s
to_s()
Alias for: inspect