Sha256: 3c23e41895dfdcbac889e9a611a55c2e98803ea7ee06fab0c04b7499272db0c6
Contents?: true
Size: 1.26 KB
Versions: 2
Compression:
Stored size: 1.26 KB
Contents
module Spec module Matchers # :call-seq: # should include(expected) # should_not include(expected) # # Passes if actual includes expected. This works for # collections and Strings. You can also pass in multiple args # and it will only pass if all args are found in collection. # # == Examples # # [1,2,3].should include(3) # [1,2,3].should include(2,3) #would pass # [1,2,3].should include(2,3,4) #would fail # [1,2,3].should_not include(4) # "spread".should include("read") # "spread".should_not include("red") def include(*expected) Matcher.new :include, *expected do |*expecteds| match do |actual| helper(actual, *expecteds) end def helper(actual, *expecteds) expecteds.each do |expected| if actual.is_a?(Hash) if expected.is_a?(Hash) expected.each_pair do |k,v| return false unless actual[k] == v end else return false unless actual.has_key?(expected) end else return false unless actual.include?(expected) end end true end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rspec-1.2.3 | lib/spec/matchers/include.rb |
rspec-1.2.4 | lib/spec/matchers/include.rb |