Sha256: 2c711385c5bad45b5e257307289b5b474f480606969c10a48afb0db351ae6e28

Contents?: true

Size: 716 Bytes

Versions: 18

Compression:

Stored size: 716 Bytes

Contents

#
# A minimal implementation of a Hashlike for testing
#
# Delegates the basic 4 methods Hashlike expects ([], []=, delete, keys) to an
# actual hash.
#
class InternalHash < Object

  include Gorillib::Hashlike

  attr_reader :myhsh
  def initialize
    @myhsh = {}
  end
  def [](*args,&blk)     @myhsh.[](*args, &blk)     ; end
  def []=(*args,&blk)    @myhsh.[]=(*args, &blk)    ; end
  def delete(*args,&blk) @myhsh.delete(*args, &blk) ; end
  def keys(*args,&blk)   @myhsh.keys(*args, &blk)   ; end

  def dup
    d = super
    d.instance_variable_set("@myhsh", @myhsh.dup)
    d
  end

  def hash_eql?(other_hsh)
    other_hsh = other_hsh.myhsh if other_hsh.is_a?(self.class)
    @myhsh == other_hsh
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
gorillib-0.6.0 spec/support/hashlike_via_delegation.rb
gorillib-0.5.2 spec/support/hashlike_via_delegation.rb
gorillib-0.5.0 spec/support/hashlike_via_delegation.rb
gorillib-0.4.2 spec/support/hashlike_via_delegation.rb
gorillib-0.4.2pre spec/support/hashlike_via_delegation.rb
gorillib-0.4.0pre spec/support/hashlike_via_delegation.rb
gorillib-0.4.1pre spec/support/hashlike_via_delegation.rb
gorillib-0.1.11 spec/support/hashlike_via_delegation.rb
gorillib-0.1.9 spec/support/hashlike_via_delegation.rb
gorillib-0.1.8 spec/support/hashlike_via_delegation.rb
gorillib-0.1.7 spec/support/hashlike_via_delegation.rb
gorillib-0.1.6 spec/support/hashlike_via_delegation.rb
gorillib-0.1.5 spec/support/hashlike_via_delegation.rb
gorillib-0.1.4 spec/support/hashlike_via_delegation.rb
gorillib-0.1.3 spec/support/hashlike_via_delegation.rb
gorillib-0.1.2 spec/support/hashlike_via_delegation.rb
gorillib-0.1.1 spec/support/hashlike_via_delegation.rb
gorillib-0.1.0 spec/support/hashlike_via_delegation.rb