Sha256: 339c3aec680b694c8977a9093c0c6d53fb9dd0e17b86c690df990cc87b12f945
Contents?: true
Size: 1.86 KB
Versions: 1
Compression:
Stored size: 1.86 KB
Contents
#!/usr/bin/env ruby #--- # Copyright 2003, 2004, 2005, 2006, 2007 by Jim Weirich (jim@weirichhouse.org). # All rights reserved. # # Permission is granted for use, copying, modification, distribution, # and distribution of modified versions of this work as long as the # above copyright notice is included. #+++ require 'flexmock/noop' class FlexMock #################################################################### # Match any object class AnyMatcher def ===(target) true end def inspect "ANY" end end #################################################################### # Match only things that are equal. class EqualMatcher def initialize(obj) @obj = obj end def ===(target) @obj == target end def inspect "==(#{@obj.inspect})" end end ANY = AnyMatcher.new #################################################################### # Match only things where the block evaluates to true. class ProcMatcher def initialize(&block) @block = block end def ===(target) @block.call(target) end def inspect "on{...}" end end #################################################################### # Match only things where the block evaluates to true. class HashMatcher def initialize(hash) @hash = hash end def ===(target) @hash.all? { |k, v| target[k] == v } end def inspect "hsh(#{@hash.inspect})" "hsh(...)" end end #################################################################### # Match only things where the block evaluates to true. class DuckMatcher def initialize(methods) @methods = methods end def ===(target) @methods.all? { |m| target.respond_to?(m) } end def inspect "ducktype(#{@methods.map{|m| m.inspect}.join(',')})" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
flexmock-0.8.4 | lib/flexmock/argument_matchers.rb |