Sha256: d6252a6e70d403a64ee6e1e90068df8fa6ada5d13d598cc6920e439dda14b0a0

Contents?: true

Size: 996 Bytes

Versions: 119

Compression:

Stored size: 996 Bytes

Contents

require 'mocha/inspect'
require 'mocha/parameter_matchers'

module Mocha
  
  class ParametersMatcher
    
    def initialize(expected_parameters = [ParameterMatchers::AnyParameters.new], &matching_block)
      @expected_parameters, @matching_block = expected_parameters, matching_block
    end
    
    def match?(actual_parameters = [])
      if @matching_block
        return @matching_block.call(*actual_parameters)
      else
        return parameters_match?(actual_parameters)
      end
    end
    
    def parameters_match?(actual_parameters)
      matchers.all? { |matcher| matcher.matches?(actual_parameters) } && (actual_parameters.length == 0)
    end
    
    def mocha_inspect
      signature = matchers.mocha_inspect
      signature = signature.gsub(/^\[|\]$/, '')
      signature = signature.gsub(/^\{|\}$/, '') if matchers.length == 1
      "(#{signature})"
    end
    
    def matchers
      @expected_parameters.map { |parameter| parameter.to_matcher }
    end
    
  end

end

Version data entries

119 entries across 114 versions & 13 rubygems

Version Path
dradis-mediawiki-4.15.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.14.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.13.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.11.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.10.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.9.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.8.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.7.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.6.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.5.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.4.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.3.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.2.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.1.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-4.0.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-3.22.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-3.21.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-3.20.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-3.19.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb
dradis-mediawiki-3.18.0 test/vendor/mocha-0.9.5/lib/mocha/parameters_matcher.rb