Predicate Methods
A commonly used definition of a predicate method is a method that returns a boolean value. In Ruby, the convention is to end the method name with a question mark.
A predicate method should return true or false. (In the reference article, the author mentions that some people instead advocate for a ‘truthy’ value.)
0.zero? # => true
1.zero? # => false
defined? in Ruby might appear to be an exception to the convention as it does not return true or false, but defined? an operator, not a method.
In Rails, there is a “getter” method generated for each database column by default, like Item#returns_accepted. As a convenience, a question mark method (Item#returns_accepted?) is also generated for boolean database columns which behaves mostly the same but it also converts nil to false.