Sha256: 50affd3db1e7bddfbf342ff3e218f4d747378fe2a6c54a3034db65da1f415125

Contents?: true

Size: 920 Bytes

Versions: 7

Compression:

Stored size: 920 Bytes

Contents

require 'spec_helper'
require 'gorillib/hash/zip'

describe Hash, :hashlike_spec => true do
  describe '#zip' do
    it 'builds a hash from keys and values' do
      Hash.zip([:a, :b, :c], [1, 2, 3]).should == { :a => 1, :b => 2, :c => 3 }
    end

    it 'ignores extra values' do
      Hash.zip([:a, :b, :c], [1, 2, 3, 4, 5]).should == { :a => 1, :b => 2, :c => 3 }
    end

    it 'supplies nil values for extra keys' do
      Hash.zip([:a, :b, :c, :d], [1, 2, 3]).should == { :a => 1, :b => 2, :c => 3, :d => nil }
    end

    it 'uses the default block if given' do
      hsh = Hash.zip([:a, :b, :c], [1, 2, 3]){|h,k| h[k] = :foo }
      hsh.should == { :a => 1, :b => 2, :c => 3 }
      hsh[:d].should == :foo
    end

    it 'uses the default value if given' do
      hsh = Hash.zip([:a, :b, :c], [1, 2, 3], :bar)
      hsh.should == { :a => 1, :b => 2, :c => 3 }
      hsh[:d].should == :bar
    end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
gorillib-0.6.0 spec/gorillib/hash/zip_spec.rb
gorillib-0.5.2 spec/gorillib/hash/zip_spec.rb
gorillib-0.5.0 spec/gorillib/hash/zip_spec.rb
gorillib-0.4.2 spec/gorillib/hash/zip_spec.rb
gorillib-0.4.2pre spec/gorillib/hash/zip_spec.rb
gorillib-0.4.0pre spec/gorillib/hash/zip_spec.rb
gorillib-0.4.1pre spec/gorillib/hash/zip_spec.rb