Sha256: 996aff1f837cd33c5affaa08a1469dcbcd569214c2dd3684c39a7a144fd4ae17

Contents?: true

Size: 899 Bytes

Versions: 5

Compression:

Stored size: 899 Bytes

Contents

covers 'facets/hash/recurse'

test_case Hash do

  method :recurse do

    test do
      h = {:a=>1, :b=>{:b1=>1, :b2=>2}}
      g = h.recurse{|h| h.inject({}){|h,(k,v)| h[k.to_s] = v; h} }
      g.assert == {"a"=>1, "b"=>{"b1"=>1, "b2"=>2}}
    end

    test "with Arrays" do
      require 'facets/array/recurse'
      objects = []
      struct = {:a => 3, :b => [4, 5, {:c=>6}]} 
      struct.recurse(Array, Hash){|o| objects << o; o }

      objects.assert.include?( {:c=>6}                          )
      objects.assert.include?( [4, 5, {:c=>6}]                  )
      objects.assert.include?( struct                           )

      objects.length.assert == 3
    end

  end

  method :recurse! do

    test do
      h = {:a=>1, :b=>{:b1=>1, :b2=>2}}
      h.recurse!{|h| h.inject({}){|h,(k,v)| h[k.to_s] = v; h} }
      h.assert == {"a"=>1, "b"=>{"b1"=>1, "b2"=>2}}
    end

  end

end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
facets-glimmer-3.2.0 test/core/hash/test_recurse.rb
facets-3.1.0 test/core/hash/test_recurse.rb
facets-3.0.0 test/core/hash/test_recurse.rb
facets-2.9.3 test/core/hash/test_recurse.rb
facets-2.9.2 test/core/hash/test_recurse.rb