Sha256: 0a98cd6140697d02b9664df72193a99435f00801f53c3ba9ee51b2e4297c59f8

Contents?: true

Size: 1.06 KB

Versions: 18

Compression:

Stored size: 1.06 KB

Contents

module RSpec
  module Matchers
    class Has
      def initialize(expected, *args)
        @expected, @args = expected, args
      end

      def matches?(actual)
        actual.__send__(predicate(@expected), *@args)
      end

      def failure_message_for_should
        "expected ##{predicate(@expected)}#{failure_message_args_description} to return true, got false"
      end

      def failure_message_for_should_not
        "expected ##{predicate(@expected)}#{failure_message_args_description} to return false, got true"
      end

      def description
        [method_description(@expected), args_description].compact.join(' ')
      end

    private
      def predicate(sym)
        "#{sym.to_s.sub("have_","has_")}?".to_sym
      end

      def method_description(method)
        method.to_s.gsub('_', ' ')
      end

      def args_description
        return nil if @args.empty?
        @args.map { |arg| arg.inspect }.join(', ')
      end

      def failure_message_args_description
        desc = args_description
        "(#{desc})" if desc
      end
    end
  end
end

Version data entries

18 entries across 16 versions & 4 rubygems

Version Path
resque-pool-0.3.0 vendor/bundle/ruby/1.8/gems/rspec-expectations-2.8.0/lib/rspec/matchers/has.rb
resque-pool-0.3.0.beta.2 vendor/bundle/ruby/1.8/gems/rspec-expectations-2.8.0/lib/rspec/matchers/has.rb
horseman-0.0.4 vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/has.rb
horseman-0.0.4 vendor/ruby/1.9.1/gems/rspec-expectations-2.7.0/lib/rspec/matchers/has.rb
horseman-0.0.3 vendor/ruby/1.9.1/gems/rspec-expectations-2.7.0/lib/rspec/matchers/has.rb
horseman-0.0.3 vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/has.rb
horseman-0.0.2 vendor/ruby/1.9.1/gems/rspec-expectations-2.7.0/lib/rspec/matchers/has.rb
rspec-expectations-2.8.0 lib/rspec/matchers/has.rb
nutshell-crm-0.0.6.alpha vendor/bundle/gems/rspec-expectations-2.7.0/lib/rspec/matchers/has.rb
rspec-expectations-2.8.0.rc2 lib/rspec/matchers/has.rb
nutshell-crm-0.0.5 vendor/bundle/gems/rspec-expectations-2.7.0/lib/rspec/matchers/has.rb
nutshell-crm-0.0.4 vendor/bundle/gems/rspec-expectations-2.7.0/lib/rspec/matchers/has.rb
nutshell-crm-0.0.3 vendor/bundle/gems/rspec-expectations-2.7.0/lib/rspec/matchers/has.rb
nutshell-crm-0.0.2 vendor/bundle/gems/rspec-expectations-2.7.0/lib/rspec/matchers/has.rb
nutshell-crm-0.0.1 vendor/bundle/gems/rspec-expectations-2.7.0/lib/rspec/matchers/has.rb
rspec-expectations-2.8.0.rc1 lib/rspec/matchers/has.rb
rspec-expectations-2.7.0 lib/rspec/matchers/has.rb
rspec-expectations-2.7.0.rc1 lib/rspec/matchers/has.rb