From: "mame (Yusuke Endoh)" Date: 2012-05-21T20:34:13+09:00 Subject: [ruby-core:45166] [ruby-trunk - Feature #6470][Assigned] Make attr_accessor return the list of generated method Issue #6470 has been updated by mame (Yusuke Endoh). Status changed from Open to Assigned Assignee set to matz (Yukihiro Matsumoto) This duplicates #6198. BTW, why don't you use instance variables directly? That is: class Something def initialize(user, action) @user = user @action = action end def public_method @user.do_something(@action) end end -- Yusuke Endoh ---------------------------------------- Feature #6470: Make attr_accessor return the list of generated method https://bugs.ruby-lang.org/issues/6470#change-26742 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/