ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:123113] [Ruby Feature#21555] Add support for predicate attribute reader names
@ 2025-08-28 22:56 shan (Shannon Skipper) via ruby-core
  2025-08-29  4:07 ` [ruby-core:123115] " Dan0042 (Daniel DeLorme) via ruby-core
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: shan (Shannon Skipper) via ruby-core @ 2025-08-28 22:56 UTC (permalink / raw)
  To: ruby-core; +Cc: shan (Shannon Skipper)

Issue #21555 has been reported by shan (Shannon Skipper).

----------------------------------------
Feature #21555: Add support for predicate attribute reader names
https://bugs.ruby-lang.org/issues/21555

* Author: shan (Shannon Skipper)
* Status: Open
----------------------------------------
After manually aliasing predicate methods many times, I wanted to propose letting `attr_reader` take predicate method names that correspond to instance variables of the base name without a trailing question mark. https://github.com/ruby/ruby/pull/14391

If the base name method doesn't already exist, a predicate name defines a base name method attribute reader to alias then undefines the base name.

For example, this creates an `enabled?` method that reads `@enabled`:
```ruby
attr_reader :enabled?
```

This feature is only supported for `attr_reader` and `attr`, not `attr_writer` or `attr_accessor`, since setter methods cannot have question marks.

Example:
```ruby
class Example
  attr_reader :valid?, :meaning

  def initialize
    @valid = [true, false].sample
    @meaning = 42
  end
end

Example.new.valid? #=> true
```



-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-09-16 11:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-08-28 22:56 [ruby-core:123113] [Ruby Feature#21555] Add support for predicate attribute reader names shan (Shannon Skipper) via ruby-core
2025-08-29  4:07 ` [ruby-core:123115] " Dan0042 (Daniel DeLorme) via ruby-core
2025-08-29  7:16 ` [ruby-core:123117] " byroot (Jean Boussier) via ruby-core
2025-08-29 22:57 ` [ruby-core:123130] " shan (Shannon Skipper) via ruby-core
2025-09-11  5:21 ` [ruby-core:123215] " matz (Yukihiro Matsumoto) via ruby-core
2025-09-16 11:50 ` [ruby-core:123260] " Dan0042 (Daniel DeLorme) via ruby-core

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).