# File weave.rb, line 171 def self.rb_define_singleton_method object, name, sym, arity prev = nil meta = class << object; self; end begin prev = meta.instance_method(name.to_sym) rescue NameError end case sym when UnboundMethod meta.instance_eval { define_method name.to_sym, sym } when Symbol Weave::FFI.define_singleton_method object, name, sym.sym, arity when Numeric # maybe someone passed in a handle? Weave::FFI.define_singleton_method object, name, sym, arity end return prev end