Sha256: 0e46ceefd7a92df4e0a0ce64f1ca79526ba6a70b46e861b20d72eec5f424b064

Contents?: true

Size: 1.24 KB

Versions: 2

Compression:

Stored size: 1.24 KB

Contents

require 'spec_helper'
require 'gorillib/hash/deep_compact'
require 'gorillib/array/deep_compact'

describe Hash, :hashlike_spec => true do
  describe 'array/deep_compact and hash/deep_compact' do
    it "should respond to the method deep_compact!" do
      { }.should respond_to :deep_compact!
    end

    it "should return nil if all values evaluate as blank" do
      { :a => nil, :b => "", :c => [], :d => {} }.deep_compact!.should == {}
    end

    it "should return a hash with all blank values removed recursively" do
      @test_hash = {:e=>["", nil, [], {}, "foo", { :a=> [nil, {}, { :c=> ["","",[]] } ], :b => nil }]}
      @test_hash.deep_compact!.should == {:e=>["foo"]}
    end
  end
end

describe Array, :hashlike_spec => true do
  describe 'array/deep_compact and hash/deep_compact' do
    it "should respond to the method deep_compact!" do
      [ ].should respond_to :deep_compact!
    end

    it "should return nil if all values evaluate as blank" do
      [nil, '', { }, []].deep_compact!.should == []
    end

    it "should return a hash with all blank values removed recursively" do
      @test_arr = ["", nil, [], {}, "foo", { :a=> [nil, {}, { :c=> ["","",[]] } ], :b => nil }]
      @test_arr.deep_compact!.should == ["foo"]
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gorillib-0.4.0pre spec/gorillib/hash/deep_compact_spec.rb
gorillib-0.4.1pre spec/gorillib/hash/deep_compact_spec.rb