# Property short cut for read-ony instance access, but

**URL:** <https://www.ruby-forum.com/t/property-short-cut-for-read-ony-instance-access-but/195033>\
**Category:** Ruby\
**Created:** [September 15, 2010, 4:46pm UTC](https://www.ruby-forum.com/t/property-short-cut-for-read-ony-instance-access-but/195033 "2010-09-15T16:46:47Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![mydarkpassenger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/82dd89/32.png) [@mydarkpassenger](https://www.ruby-forum.com/u/mydarkpassenger)\
**Post date:** [September 15, 2010, 4:46pm UTC](https://www.ruby-forum.com/t/property-short-cut-for-read-ony-instance-access-but/195033/1 "2010-09-15T16:46:47Z")

</div>

Hello,

Is there a short cut for creating a property that has read-only access  
from instance variables and read/write access for derived classes?

Was looking for something like…

attr\_reader :prompt  
attr\_writer protected :prompt

or am I doomed to do it this way…

#…  
def prompt  
@prompt  
end

def prompt=(value)  
@prompt=value  
end  
protected :prompt=  
#…

---

<div class="post-metadata">

**Author:** ![mydarkpassenger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/82dd89/32.png) [@mydarkpassenger](https://www.ruby-forum.com/u/mydarkpassenger)\
**Post date:** [September 15, 2010, 5:14pm UTC](https://www.ruby-forum.com/t/property-short-cut-for-read-ony-instance-access-but/195033/2 "2010-09-15T17:14:18Z")

</div>

On Wed, Sep 15, 2010 at 4:46 PM, Gene A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> or am I doomed to do it this way…  
> #…  
> With a little meta programming you can do

class Module  
def attr\_protected \*names  
attr\_accessor \*names  
protected \*names.map {|n| “#{n}=”}  
end  
end

and use it like

class A  
attr\_protected :foo, :bar  
end

Kind regards

robert
