Issue #16817 has been updated by sambostock (Sam Bostock).


> `attr_predicate :cat` would define a method named `:cat?` that returned the value for ivar `@cat`.

I think it would make sense for the predicate method to convert the value to `true` or `false` before returning it, to make a clear distinction between a regular "getter" method, and a "predicate" method.

```
def cat?
  !!@cat
end
```

----------------------------------------
Feature #16817: attr_predicate or attr_query or attr_something for ? methods
https://bugs.ruby-lang.org/issues/16817#change-93502

* Author: robotdana (Dana Sherson)
* Status: Open
* Priority: Normal
----------------------------------------
I would like `attr_predicate` like attr_reader etc.

`attr_predicate :cat` would define a method named `:cat?` that returned the value for ivar `@cat`.

I would like this because i find myself writing this:
```
def cat?
  @cat
end
```
which is fine once, but becomes tedious with many attributes

Another possibility is allowing `attr_reader :cat?` to define a method that returns the value for ivar `@cat`. currently it raises `NameError (invalid attribute name `cat?')`

Thank you



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>