Skip to content

methodmissing/cb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Native MRI callback

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •