From: "rupert (Robert Pankowecki)" Date: 2012-05-22T04:05:30+09:00 Subject: [ruby-core:45173] [ruby-trunk - Feature #6470] Make attr_accessor return the list of generated method Issue #6470 has been updated by rupert (Robert Pankowecki). I want to access my private fields also via methods instead of directly via instance variables so refactoring in future is easier. For example instead of finding in class all occurrences of @var = something and changing them into either "@var = something.strip" or extracting it into setter, I already use the private setter defined with attr_accessor everywhere. That way I only need to change the setter implementation in one place and don't need to look for code setting instance variable because there is non such, only calls for the accessor. ---------------------------------------- Feature #6470: Make attr_accessor return the list of generated method https://bugs.ruby-lang.org/issues/6470#change-26753 Author: rupert (Robert Pankowecki) Status: Assigned Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: Target version: attr_accesor currently returns nil. It would be more helpful if it return list of generated methods so that it can become an argument to other methods like :private or :protected. That way private accessors can still be defined at top of the class and be private without changing the visibility of next methods. class Something private *attr_accessor :user, :action # IMHO This is nice # private attr_accessor :user, :action # <-- would be even better if :private method accepted arrays def initialize(user, action) self.user = user self.action = action end def public_method user.do_something(action) end end VS class Something private; attr_accessor :user, :action; public # IMHO Hack!! def initialize(user, action) self.user = user self.action = action end def public_method user.do_something(action) end end VS class Something def initialize(user, action) self.user = user self.action = action end def public_method user.do_something(action) end private attr_accessor :user, :action # IMHO Does not look nice at bottom of the class definition end -- http://bugs.ruby-lang.org/