class RSpec::Matchers::BuiltIn::Exist::ExistenceTest
@api private Simple class for memoizing actual/expected for this matcher and examining the match
Public Instance Methods
actual_exists?()
click to toggle source
@api private @return [Boolean]
# File lib/rspec/matchers/built_in/exist.rb, line 52 def actual_exists? existence_values.first end
valid_test?()
click to toggle source
@return [Boolean]
# File lib/rspec/matchers/built_in/exist.rb, line 46 def valid_test? uniq_truthy_values.size == 1 end
validity_message()
click to toggle source
@api private @return [String]
# File lib/rspec/matchers/built_in/exist.rb, line 58 def validity_message case uniq_truthy_values.size when 0 " but it does not respond to either `exist?` or `exists?`" when 2 " but `exist?` and `exists?` returned different values:\n\n"\ " exist?: #{existence_values.first}\n"\ "exists?: #{existence_values.last}" end end
Private Instance Methods
deprecated(predicate, actual)
click to toggle source
# File lib/rspec/matchers/built_in/exist.rb, line 83 def deprecated(predicate, actual) predicate == :exists? && (File == actual || FileTest == actual || Dir == actual) end
existence_values()
click to toggle source
# File lib/rspec/matchers/built_in/exist.rb, line 75 def existence_values @existence_values ||= predicates.map { |p| actual.__send__(p, *expected) } end
predicates()
click to toggle source
# File lib/rspec/matchers/built_in/exist.rb, line 79 def predicates @predicates ||= [:exist?, :exists?].select { |p| actual.respond_to?(p) && !deprecated(p, actual) } end
uniq_truthy_values()
click to toggle source
# File lib/rspec/matchers/built_in/exist.rb, line 71 def uniq_truthy_values @uniq_truthy_values ||= existence_values.map { |v| !!v }.uniq end