Sha256: 962363fe84f3bb22a591a76252b7e36b4a5ed811f5bd2b25c5c461812fe8105a

Contents?: true

Size: 1.13 KB

Versions: 2

Compression:

Stored size: 1.13 KB

Contents

require "spec_helper"

describe Hash do

  it "should #set_or_incr values" do
    hash = {:count => 1}
    hash.set_or_incr(:sum, 3).should be_true
    hash.should == {:count => 1, :sum => 3}
    hash.set_or_incr(:count, 4).should be_true
    hash.should == {:count => 5, :sum => 3}
    hash.set_or_incr(:count, 'test').should be_false
    hash.set_or_incr(:view, 'test').should be_false
    hash.should == {:count => 5, :sum => 3}
    hash[:view] = 'test'
    hash.set_or_incr(:view, 3).should be_false
  end

  it "should #merge_and_incr hashes" do
    hash = { :count => 1, :city => 'hell', :sum => 3, :name => 'john' }

    new_hash = { :count => 3, :city => 'slum', :views => 2 }
    hash.clone.merge_and_incr(new_hash).should == { :count => 4, :city => 'slum', :views => 2,
                                                    :sum   => 3, :name => 'john' }

    new_hash = { :count => 'six', :city => 'slum', :views => 2, :time => 'late' }
    hash.clone.merge_and_incr(new_hash).should == { :count => 'six', :city => 'slum', :views => 2,
                                                    :sum   => 3, :name => 'john', :time => 'late' }
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
redistat-0.5.0 spec/core_ext/hash_spec.rb
redistat-0.4.0 spec/core_ext/hash_spec.rb