mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-21 09:40:13 +01:00
57 lines
No EOL
1.2 KiB
Ruby
57 lines
No EOL
1.2 KiB
Ruby
module ActionView
|
|
module Helpers
|
|
class JavaScriptProxy
|
|
public :method_missing
|
|
|
|
protected
|
|
|
|
def wrap(function, *args)
|
|
args = [function_chain[-1].chomp(';')].concat(args.collect(&:to_json)).join(', ')
|
|
replace_line("#{function.to_s}(#{args});")
|
|
end
|
|
|
|
def replace_line(new_line)
|
|
function_chain[-1] = new_line
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
module UJS
|
|
module JavascriptProxies
|
|
|
|
class ReferencedJavascriptElementProxy < ActionView::Helpers::JavaScriptElementProxy
|
|
|
|
def initialize(generator, var)
|
|
@generator = generator
|
|
@generator << var
|
|
end
|
|
|
|
def reload; end
|
|
|
|
end
|
|
|
|
class JavascriptArgumentProxy
|
|
def initialize(proxy, *contructor_args)
|
|
@proxy, @args = proxy, contructor_args
|
|
end
|
|
|
|
def method_missing(meth, *args)
|
|
proxy = @proxy.new(*@args)
|
|
proxy.__send__(meth, *args)
|
|
end
|
|
end
|
|
|
|
class JavascriptEventProxy < ActionView::Helpers::JavaScriptProxy
|
|
def stop
|
|
wrap('Event.stop')
|
|
end
|
|
|
|
def element
|
|
wrap('Event.element')
|
|
end
|
|
end
|
|
end
|
|
end |