Sha256: 88c0e9a369c396ef5040a6a670aa2b013b8a536faa303b21d7f575f7124ea247

Contents?: true

Size: 689 Bytes

Versions: 78

Compression:

Stored size: 689 Bytes

Contents

module EventMachine
  # Utility method for coercing arguments to an object that responds to #call
  # Accepts an object and a method name to send to, or a block, or an object
  # that responds to call.
  #
  #  cb = EM.Callback{ |msg| puts(msg) }
  #  cb.call('hello world')
  #
  #  cb = EM.Callback(Object, :puts)
  #  cb.call('hello world')
  #
  #  cb = EM.Callback(proc{ |msg| puts(msg) })
  #  cb.call('hello world')
  #
  def self.Callback(object = nil, method = nil, &blk)
    if object && method
      lambda { |*args| object.send method, *args }
    else
      if object.respond_to? :call
        object
      else 
        blk || raise(ArgumentError)
      end
    end
  end
end

Version data entries

78 entries across 78 versions & 10 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.7.4 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.7.3 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
MattHulse-eventmachine-0.0.1 lib/em/callback.rb
MattHulse-eventmachine-0.12.10 lib/em/callback.rb
eventmachine-eventmachine-0.12.8 lib/em/callback.rb
eventmachine-eventmachine-0.12.9 lib/em/callback.rb
classiccms-0.7.2 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.7.1 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.7.0 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.6.9 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.6.8 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.6.7 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.6.6 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.6.5 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.6.4 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.6.3 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.6.2 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.6.1 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb
classiccms-0.6.0 vendor/bundle/gems/eventmachine-0.12.10/lib/em/callback.rb