module NodeModule

Constants

VERSION

Public Class Methods

compile_and_replace!(receiver, methods) click to toggle source
# File lib/node_module.rb, line 29
def self.compile_and_replace!(receiver, methods)
  methods.each do |name|
    meth = receiver.instance_method(name).to_ruby
    self.opal_js_context.compile(meth)
    self.replace_method!(receiver, name)
  end
end
compile_on_callback(receiver) click to toggle source
# File lib/node_module.rb, line 37
def self.compile_on_callback(receiver)
  active = nil
  receiver.define_singleton_method(:method_added) do |name|
    return if active
    active = true
    receiver.node_module(name)
    active = false
  end
end
included(receiver) click to toggle source
# File lib/node_module.rb, line 11
def self.included(receiver)
  receiver.extend ClassMethods
end
opal_js_context() click to toggle source
# File lib/node_module.rb, line 15
def self.opal_js_context
  @ctx ||= OpalJsContext.new
end
replace_method!(receiver, name) click to toggle source
# File lib/node_module.rb, line 47
def self.replace_method!(receiver, name)
  receiver.send :define_method, name do |*args|
    NodeModule.opal_js_context.run(__method__, args)
  end
end