Class: RSpec::Matchers::BuiltIn::BePredicate
- Inherits:
-
BaseMatcher
- Object
- BaseMatcher
- RSpec::Matchers::BuiltIn::BePredicate
- Includes:
- BeHelpers
- Defined in:
- lib/rspec/matchers/built_in/be.rb
Constant Summary
Constant Summary
Constants inherited from BaseMatcher
RSpec::Matchers::BuiltIn::BaseMatcher::UNDEFINED
Instance Attribute Summary
Attributes inherited from BaseMatcher
#actual, #expected, #rescued_exception
Instance Method Summary (collapse)
- - (Object) description
- - (Object) failure_message_for_should
- - (Object) failure_message_for_should_not
-
- (BePredicate) initialize(*args)
constructor
A new instance of BePredicate.
- - (Boolean) is_private_on?(actual)
- - (Boolean) matches?(actual) (also: #===)
Methods inherited from BaseMatcher
#diffable?, #match_unless_raises, #supports_block_expectations?
Methods included from MatchAliases
Methods included from Pretty
#_pretty_print, #expected_to_sentence, #name, #name_to_sentence, #split_words, #to_sentence, #to_word, #underscore
Constructor Details
- (BePredicate) initialize(*args)
A new instance of BePredicate
136 137 138 139 140 |
# File 'lib/rspec/matchers/built_in/be.rb', line 136 def initialize(*args, &block) @expected = parse_expected(args.shift) @args = args @block = block end |
Instance Method Details
- (Object) description
178 179 180 |
# File 'lib/rspec/matchers/built_in/be.rb', line 178 def description "#{prefix_to_sentence}#{expected_to_sentence}#{args_to_sentence}" end |
- (Object) failure_message_for_should
170 171 172 |
# File 'lib/rspec/matchers/built_in/be.rb', line 170 def "expected #{predicate}#{args_to_s} to return true, got #{@result.inspect}" end |
- (Object) failure_message_for_should_not
174 175 176 |
# File 'lib/rspec/matchers/built_in/be.rb', line 174 def "expected #{predicate}#{args_to_s} to return false, got #{@result.inspect}" end |
- (Boolean) is_private_on?(actual)
186 187 188 |
# File 'lib/rspec/matchers/built_in/be.rb', line 186 def is_private_on? actual actual.private_methods.include? predicate.to_s end |
- (Boolean) matches?(actual) Also known as: ===
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
# File 'lib/rspec/matchers/built_in/be.rb', line 142 def matches?(actual) @actual = actual if is_private_on?( @actual ) RSpec.deprecate "matching with be_#{predicate.to_s.gsub(/\?$/,'')} on private method #{predicate}", :replacement => "`expect(object.send(#{predicate.inspect})).to be_true` or change the method's visibility to public", :call_site => caller(0)[3] end begin @result = actual.__send__(predicate, *@args, &@block) check_respond_to(predicate) return @result rescue NameError => predicate_missing_error "this needs to be here or rcov will not count this branch even though it's executed in a code example" end begin @result = actual.__send__(present_tense_predicate, *@args, &@block) check_respond_to(present_tense_predicate) return @result rescue NameError raise predicate_missing_error end end |