Sha256: bd04ac2a6ebb4a1228342b2b28a7c4ed8cfbbb322bd546855bf479589329987f

Contents?: true

Size: 1.07 KB

Versions: 29

Compression:

Stored size: 1.07 KB

Contents

describe "Hash#rassoc" do
  before :each do
    @h = {:apple => :green, :orange => :orange, :grape => :green, :banana => :yellow}
  end

  it "returns an Array if the argument is a value of the Hash" do
    @h.rassoc(:green).should be_kind_of(Array)
  end

  it "returns a 2-element Array if the argument is a valud of the Hash" do
    @h.rassoc(:orange).size.should == 2
  end

  it "sets the first element of the Array to the key of the located value" do
    @h.rassoc(:yellow).first.should == :banana
  end

  it "sets the last element of the Array to the located value" do
    @h.rassoc(:yellow).last.should == :yellow
  end

  it "only returns the first matching key-value pair" do
    @h.rassoc(:green).should == [:apple, :green]
  end

  it "returns nil if the argument is not a value of the Hash" do
    @h.rassoc(:banana).should be_nil
  end

  it "returns nil if the argument is not a value of the Hash even when there is a default" do
    Hash.new(42).merge!( :foo => :bar ).rassoc(42).should be_nil
    Hash.new{|h, k| h[k] = 42}.merge!( :foo => :bar ).rassoc(42).should be_nil
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
opal-0.4.4 spec/rubyspec/core/hash/rassoc_spec.rb
opal-0.4.3 spec/rubyspec/core/hash/rassoc_spec.rb
opal-0.4.2 spec/rubyspec/core/hash/rassoc_spec.rb
opal-0.4.1 spec/rubyspec/core/hash/rassoc_spec.rb
opal-0.4.0 spec/rubyspec/core/hash/rassoc_spec.rb
opal-0.3.44 spec/rubyspec/core/hash/rassoc_spec.rb
opal-0.3.43 spec/rubyspec/core/hash/rassoc_spec.rb
opal-0.3.42 spec/core/hash/rassoc_spec.rb
opal-0.3.41 spec/core/hash/rassoc_spec.rb
opal-0.3.40 spec/core/hash/rassoc_spec.rb
opal-0.3.39 spec/core/hash/rassoc_spec.rb
opal-0.3.38 spec/core/hash/rassoc_spec.rb
opal-0.3.37 spec/core/hash/rassoc_spec.rb
opal-0.3.36 spec/core/hash/rassoc_spec.rb
opal-0.3.35 spec/core/hash/rassoc_spec.rb
opal-0.3.34 spec/core/hash/rassoc_spec.rb
opal-0.3.33 spec/core/hash/rassoc_spec.rb
opal-0.3.32 spec/core/hash/rassoc_spec.rb
opal-0.3.31 spec/core/hash/rassoc_spec.rb
opal-0.3.30 spec/core/hash/rassoc_spec.rb