Sha256: 2f6b4f40e27cc0247da779881d96c3c6e8dd9501a31ad8495e8cf2f89bf0b9a7

Contents?: true

Size: 538 Bytes

Versions: 8

Compression:

Stored size: 538 Bytes

Contents

module RR
class HashWithObjectIdKey < ::Hash
  alias_method :get_with_object_id, :[]
  def [](key)
    super(key.__id__)
  end

  alias_method :set_with_object_id, :[]=
  def []=(key, value)
    super(key.__id__, value)
  end

  def each
    super do |object_id, value|
      yield ObjectSpace._id2ref(object_id), value
    end
  end

  def delete(key)
    super(key.__id__)
  end

  def keys
    raw_keys = super
    raw_keys.collect {|raw_key| ObjectSpace._id2ref(raw_key)}
  end

  def include?(key)
    super(key.__id__)
  end
end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rr-0.3.1 lib/rr/hash_with_object_id_key.rb
rr-0.2.4 lib/rr/hash_with_object_id_key.rb
rr-0.3.4 lib/rr/hash_with_object_id_key.rb
rr-0.3.2 lib/rr/hash_with_object_id_key.rb
rr-0.3.0 lib/rr/hash_with_object_id_key.rb
rr-0.3.3 lib/rr/hash_with_object_id_key.rb
rr-0.2.5 lib/rr/hash_with_object_id_key.rb
rr-0.3.5 lib/rr/hash_with_object_id_key.rb