Sha256: bb056720bcd7abbd23870d0de1858f245da4f93ebec3c863b097aeff3eb8b9ff
Contents?: true
Size: 1.42 KB
Versions: 17
Compression:
Stored size: 1.42 KB
Contents
#speed up java native calls by binding the methods module JavaMethodHelper def self.included(klass) klass.extend(ClassMethods) end module ClassMethods def java_native_singleton_on(object, java_klass, method_sym, params = []) unbound_method = java_klass.java_method(method_sym, params) define_singleton_method "java_#{method_sym.to_s}".to_sym do |*args| unbound_method.bind(object).call(*args) end end def java_native_method_on(object, java_klass, method_sym, params = [], method_name = nil) unbound_method = java_klass.java_method(method_sym, params) method_name = "java_#{method_sym.to_s}" if method_name.nil? define_method method_name.to_sym do |*args| unbound_method.bind(object).call(*args) end end def java_native_method(java_klass, method_sym, params = [], method_name = nil) unbound_method = java_klass.java_method(method_sym, params) method_name = "java_#{method_sym.to_s}" if method_name.nil? define_method method_name.to_sym do |*args| unbound_method.bind(self.native).call(*args) end end def java_native_singleton(java_klass, method_sym, params = []) unbound_method = java_klass.java_method(method_sym, params) define_singleton_method "java_#{method_sym.to_s}".to_sym do |*args| unbound_method.call(*args) end end end end
Version data entries
17 entries across 17 versions & 1 rubygems