Project

General

Profile

Actions

Feature #21555

open

Add support for predicate attribute reader names

Added by shan (Shannon Skipper) 6 days ago. Updated 5 days ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:123113]

Description

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:

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:

class Example
  attr_reader :valid?, :meaning

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

Example.new.valid? #=> true

Related issues 6 (4 open2 closed)

Related to Ruby - Feature #16817: attr_predicate or attr_query or attr_something for ? methodsOpenActions
Related to Ruby - Feature #15991: Allow questionmarks in variable namesAssignedmatz (Yukihiro Matsumoto)Actions
Is duplicate of Ruby - Feature #5781: Query attributes (attribute methods ending in `?` mark)Assignedmatz (Yukihiro Matsumoto)Actions
Is duplicate of Ruby - Feature #11167: Allow an attr_ variant for query-methods that end with a question mark '?' character, such as: def foo? returning @fooRejectedActions
Is duplicate of Ruby - Feature #12046: Allow attr_reader :foo? to define instance method foo? for accessing @fooRejectedmatz (Yukihiro Matsumoto)Actions
Is duplicate of Ruby - Feature #19708: Support `attr_reader :foo?`OpenActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0