class Opal::Rewriters::DotJsSyntax
Public Instance Methods
on_send(node)
click to toggle source
Calls superclass method
# File lib/opal/rewriters/dot_js_syntax.rb, line 8 def on_send(node) recv, meth, *args = *node if recv && recv.type == :send recv_of_recv, meth_of_recv, _ = *recv if meth_of_recv == :JS case meth when :[] if args.size != 1 error '.JS[:property] syntax supports only one argument' end property = args.first node = to_js_attr_call(recv_of_recv, property) when :[]= if args.size != 2 error '.JS[:property]= syntax supports only two arguments' end property, value = *args node = to_js_attr_assign_call(recv_of_recv, property, value) else node = to_native_js_call(recv_of_recv, meth, args) end super(node) else super end else super end end
to_js_attr_assign_call(recv, property, value)
click to toggle source
@param recv [AST::Node] receiver of .JS[]= method @param property [AST::Node] property passed to brackets @param value [AST::Node] value of assignment
# File lib/opal/rewriters/dot_js_syntax.rb, line 56 def to_js_attr_assign_call(recv, property, value) s(:jsattrasgn, recv, property, value) end
to_js_attr_call(recv, property)
click to toggle source
@param recv [AST::Node] receiver of .JS[] method @param property [AST::Node] argument passed to .JS[] method
# File lib/opal/rewriters/dot_js_syntax.rb, line 49 def to_js_attr_call(recv, property) s(:jsattr, recv, property) end
to_native_js_call(recv, meth, args)
click to toggle source
@param recv [AST::Node] receiver of .JS. method @param meth [Symbol] name of the JS method @param args [Array<AST::Node>] list of the arguments passed to JS method
# File lib/opal/rewriters/dot_js_syntax.rb, line 43 def to_native_js_call(recv, meth, args) s(:jscall, recv, meth, *args) end