Sha256: 393c093e5b27836fb589a578e478ccdb490fd8dd584e271e6e3bb8ac4a8fa157

Contents?: true

Size: 941 Bytes

Versions: 3

Compression:

Stored size: 941 Bytes

Contents

require File.expand_path('../spec_helper', File.dirname(__FILE__))
require 'gorillib/hash/zip'

describe Hash 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

3 entries across 3 versions & 1 rubygems

Version Path
gorillib-0.1.11 spec/hash/zip_spec.rb
gorillib-0.1.9 spec/hash/zip_spec.rb
gorillib-0.1.8 spec/hash/zip_spec.rb