cb icon indicating copy to clipboard operation
cb copied to clipboard

Native MRI callback

Simple native Callback object for Ruby MRI (c) 2009 Lourens Naudé (methodmissing), James Tucker (raggi) and coderrr

http://github.com/methodmissing/cb

This library works with Ruby 1.8 and 1.9 and is a more efficient implementation of the following Ruby code :

class RubyCallback def initialize(object = nil, method = :call, &b) @object, @method = object, method @object ||= b end

def call(*args)
  @object.__send__(@method, *args)
end

end

module Kernel private def RubyCallback(object = nil, method = :call, &b) RubyCallback.new(object, method, &b) end end

Concept, ideas and API design James's - any pointers for better GC integration much appreciated.

Examples :

'hai'.callback(:gsub).call('h', 'b') #=> 'bai' Callback( 'bai', :to_s ).call #=> 'hai' Callback{ 'hai' }.call #=> 'hai' Callback( 'bai', :gsub ).call( 'b', 'h' ) #=> 'hai'

To run the test suite:

rake

To run the benchmarks:

rake bench