Sha256: 7894a54ed6678d414c899cfef38e5d104489b7212b39d4e02972fddbc0debd1e

Contents?: true

Size: 1.16 KB

Versions: 33

Compression:

Stored size: 1.16 KB

Contents

module RSpec
  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_for_should
        "expected #{@actual} to satisfy block"
      end

      def failure_message_for_should_not
        "expected #{@actual} not to satisfy block"
      end

      def description
        "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

Version data entries

33 entries across 33 versions & 4 rubygems

Version Path
rspec-expectations-2.7.0.rc1 lib/rspec/matchers/satisfy.rb
messagebus_ruby_api-0.4.7 spec/ruby/1.9.1/gems/rspec-expectations-2.5.0/lib/rspec/matchers/satisfy.rb
messagebus_ruby_api-0.4.4 spec/ruby/1.9.1/gems/rspec-expectations-2.5.0/lib/rspec/matchers/satisfy.rb
rspec-expectations-2.6.0 lib/rspec/matchers/satisfy.rb
rspec-expectations-2.6.0.rc6 lib/rspec/matchers/satisfy.rb
rspec-expectations-2.6.0.rc4 lib/rspec/matchers/satisfy.rb
rspec-expectations-2.6.0.rc2 lib/rspec/matchers/satisfy.rb
rspec-expectations-2.5.0 lib/rspec/matchers/satisfy.rb
vim-jar-0.1.2.0001 bundler/ruby/1.8/gems/rspec-expectations-2.1.0/lib/rspec/matchers/satisfy.rb
rspec-expectations-2.4.0 lib/rspec/matchers/satisfy.rb
vim-jar-0.1.2 bundler/ruby/1.8/gems/rspec-expectations-2.1.0/lib/rspec/matchers/satisfy.rb
vim-jar-0.1.1 bundler/ruby/1.8/gems/rspec-expectations-2.1.0/lib/rspec/matchers/satisfy.rb
vim-jar-0.1.0 bundler/ruby/1.8/gems/rspec-expectations-2.1.0/lib/rspec/matchers/satisfy.rb
rspec-expectations-2.3.0 lib/rspec/matchers/satisfy.rb
vim-jar-0.0.3 bundler/ruby/1.8/gems/rspec-expectations-2.1.0/lib/rspec/matchers/satisfy.rb
vim-jar-0.0.2 bundler/ruby/1.8/gems/rspec-expectations-2.1.0/lib/rspec/matchers/satisfy.rb
vim-jar-0.0.1 bundler/ruby/1.8/gems/rspec-expectations-2.1.0/lib/rspec/matchers/satisfy.rb
rspec-expectations-2.2.0 lib/rspec/matchers/satisfy.rb
rspec-expectations-2.1.0 lib/rspec/matchers/satisfy.rb
rspec-expectations-2.0.1 lib/rspec/matchers/satisfy.rb