Sha256: 007dd247e6594b8b240eda71e5293bdc5c25c1834f84079198b9b80343dbfd25
Contents?: true
Size: 1.42 KB
Versions: 44
Compression:
Stored size: 1.42 KB
Contents
require "helper" require "thor/core_ext/hash_with_indifferent_access" describe Thor::CoreExt::HashWithIndifferentAccess do before do @hash = Thor::CoreExt::HashWithIndifferentAccess.new :foo => "bar", "baz" => "bee", :force => true end it "has values accessible by either strings or symbols" do expect(@hash["foo"]).to eq("bar") expect(@hash[:foo]).to eq("bar") expect(@hash.values_at(:foo, :baz)).to eq(%w[bar bee]) expect(@hash.delete(:foo)).to eq("bar") end it "handles magic boolean predicates" do expect(@hash.force?).to be true expect(@hash.foo?).to be true expect(@hash.nothing?).to be false end it "handles magic comparisons" do expect(@hash.foo?("bar")).to be true expect(@hash.foo?("bee")).to be false end it "maps methods to keys" do expect(@hash.foo).to eq(@hash["foo"]) end it "merges keys independent if they are symbols or strings" do @hash.merge!("force" => false, :baz => "boom") expect(@hash[:force]).to eq(false) expect(@hash["baz"]).to eq("boom") end it "creates a new hash by merging keys independent if they are symbols or strings" do other = @hash.merge("force" => false, :baz => "boom") expect(other[:force]).to eq(false) expect(other["baz"]).to eq("boom") end it "converts to a traditional hash" do expect(@hash.to_hash.class).to eq(Hash) expect(@hash).to eq("foo" => "bar", "baz" => "bee", "force" => true) end end
Version data entries
44 entries across 41 versions & 19 rubygems