Sha256: 349d55dc4cf239770c4d51d33ee353fc50e512259616c3019342bcc8aa900234
Contents?: true
Size: 1.87 KB
Versions: 7
Compression:
Stored size: 1.87 KB
Contents
require 'action_view/helpers/javascript_helper' module Apotomo class JavascriptGenerator def initialize(framework) raise "No JS framework specified" if framework.blank? extend "apotomo/javascript_generator/#{framework}".camelize.constantize end def <<(javascript) "#{javascript}" end JS_ESCAPER = Object.new.extend(::ActionView::Helpers::JavaScriptHelper) # Escape carrier returns and single and double quotes for JavaScript segments. def self.escape(javascript) JS_ESCAPER.escape_javascript(javascript) end def escape(javascript) self.class.escape(javascript) end module Prototype def prototype; end def element(id); "$(\"#{id}\")"; end def update(id, markup); element(id) + '.update("'+escape(markup)+'");'; end def replace(id, markup); element(id) + '.replace("'+escape(markup)+'");'; end def update_id(id, markup); update(id, markup); end def replace_id(id, markup); replace(id, markup); end end module Right def right; end def element(id); "$(\"#{id}\")"; end def update(id, markup); element(id) + '.update("'+escape(markup)+'");'; end def replace(id, markup); element(id) + '.replace("'+escape(markup)+'");'; end def update_id(id, markup); update(id, markup); end def replace_id(id, markup); replace(id, markup); end end module Jquery def jquery; end def element(id); "$(\"#{id}\")"; end def update(id, markup); element(id) + '.html("'+escape(markup)+'");'; end def replace(id, markup); element(id) + '.replaceWith("'+escape(markup)+'");'; end def update_id(id, markup); update("##{id}", markup); end def replace_id(id, markup); replace("##{id}", markup); end end end end
Version data entries
7 entries across 7 versions & 1 rubygems