Project

General

Profile

Feature #6470

Updated by hsbt (Hiroshi SHIBATA) about 5 years ago

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 
 ```

Back