Sha256: d33a94452205415604c59915d1cebd0cb2b182f79d2b46c52a5137499ccd4c3c

Contents?: true

Size: 692 Bytes

Versions: 4

Compression:

Stored size: 692 Bytes

Contents

# Base class of Celluloid proxies
class Celluloid::Proxy::Abstract < BasicObject
  # Used for reflecting on proxy objects themselves
  def __class__
    ::Celluloid::Proxy::Abstract
  end

  # Needed for storing proxies in data structures
  needed = [:object_id, :__id__, :hash, :private_methods] - instance_methods
  if needed.any?
    include ::Kernel.dup.module_eval {
      undef_method(*(instance_methods - needed))
      self
    }
    # rubinius bug?  These methods disappear when we include hacked kernel
    define_method :==, ::BasicObject.instance_method(:==) unless instance_methods.include?(:==)
    alias_method(:equal?, :==) unless instance_methods.include?(:equal?)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
celluloid-0.17.2 lib/celluloid/proxy/abstract.rb
celluloid-0.17.1.2 lib/celluloid/proxy/abstract.rb
celluloid-0.17.1.1 lib/celluloid/proxy/abstract.rb
celluloid-0.17.1 lib/celluloid/proxy/abstract.rb