openstreetmap-website/vendor/gems/rspec-1.1.2/lib/spec/matchers/satisfy.rb
2008-01-22 16:39:09 +00:00

47 lines
1.1 KiB
Ruby

module Spec
module Matchers
class Satisfy #:nodoc:
def initialize(&block)
@block = block
end
def matches?(actual, &block)
@block = block if block
@actual = actual
@block.call(actual)
end
def failure_message
"expected #{@actual} to satisfy block"
end
def negative_failure_message
"expected #{@actual} not to satisfy block"
end
end
# :call-seq:
# should satisfy {}
# should_not satisfy {}
#
# Passes if the submitted block returns true. Yields target to the
# block.
#
# Generally speaking, this should be thought of as a last resort when
# you can't find any other way to specify the behaviour you wish to
# specify.
#
# If you do find yourself in such a situation, you could always write
# a custom matcher, which would likely make your specs more expressive.
#
# == Examples
#
# 5.should satisfy { |n|
# n > 3
# }
def satisfy(&block)
Matchers::Satisfy.new(&block)
end
end
end