class RSpec::Matchers::BuiltIn::Has

Public Class Methods

new(expected, *args) click to toggle source
# File lib/rspec/matchers/built_in/has.rb, line 5
def initialize(expected, *args)
  @expected, @args = expected, args
end

Public Instance Methods

description() click to toggle source
# File lib/rspec/matchers/built_in/has.rb, line 21
def description
  [method_description(@expected), args_description].compact.join(' ')
end
failure_message_for_should() click to toggle source
# File lib/rspec/matchers/built_in/has.rb, line 13
def failure_message_for_should
  "expected ##{predicate(@expected)}#{failure_message_args_description} to return true, got false"
end
failure_message_for_should_not() click to toggle source
# File lib/rspec/matchers/built_in/has.rb, line 17
def failure_message_for_should_not
  "expected ##{predicate(@expected)}#{failure_message_args_description} to return false, got true"
end
matches?(actual) click to toggle source
# File lib/rspec/matchers/built_in/has.rb, line 9
def matches?(actual)
  actual.__send__(predicate(@expected), *@args)
end

Private Instance Methods

args_description() click to toggle source
# File lib/rspec/matchers/built_in/has.rb, line 35
def args_description
  return nil if @args.empty?
  @args.map { |arg| arg.inspect }.join(', ')
end
failure_message_args_description() click to toggle source
# File lib/rspec/matchers/built_in/has.rb, line 40
def failure_message_args_description
  desc = args_description
  "(#{desc})" if desc
end
method_description(method) click to toggle source
# File lib/rspec/matchers/built_in/has.rb, line 31
def method_description(method)
  method.to_s.gsub('_', ' ')
end
predicate(sym) click to toggle source
# File lib/rspec/matchers/built_in/has.rb, line 27
def predicate(sym)
  "#{sym.to_s.sub("have_","has_")}?".to_sym
end