# Defining Private/Protected class attributes

**URL:** <https://www.ruby-forum.com/t/defining-private-protected-class-attributes/139047>\
**Category:** Ruby\
**Created:** [May 30, 2008, 1:17pm UTC](https://www.ruby-forum.com/t/defining-private-protected-class-attributes/139047 "2008-05-30T13:17:07Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![carbon\_monoxide](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/eb9ed0/32.png) [@carbon\_monoxide](https://www.ruby-forum.com/u/carbon_monoxide)\
**Post date:** [May 30, 2008, 1:17pm UTC](https://www.ruby-forum.com/t/defining-private-protected-class-attributes/139047/1 "2008-05-30T13:17:07Z")

</div>

If I would like to define some private/protected class attributes, I  
would have to list all their getters or setters under “private” like the  
code below. Is there any way that makes it faster?

class HelloRuby  
attr\_accessor :a, :b

private #a load of getters and setters  
:a  
:a=  
:b  
:b=

public  
def initialize  
end  
end

---

<div class="post-metadata">

**Author:** ![carbon\_monoxide](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/eb9ed0/32.png) [@carbon\_monoxide](https://www.ruby-forum.com/u/carbon_monoxide)\
**Post date:** [May 30, 2008, 3:39pm UTC](https://www.ruby-forum.com/t/defining-private-protected-class-attributes/139047/2 "2008-05-30T15:39:46Z")

</div>

Carbon Monoxide wrote:

> If I would like to define some private/protected class attributes, I  
> would have to list all their getters or setters under “private” like the  
> code below. Is there any way that makes it faster?
> 
> class HelloRuby  
> attr\_accessor :a, :b
> 
> private #a load of getters and setters  
> :a  
> :a=  
> :b  
> :b=
> 
> public  
> def initialize  
> end  
> end

class Test  
attr\_accessor :a, :b

def pub  
end

private

def not\_pub  
end

attr\_accessor :d, :e  
end

t=Test.new  
t.pub  
t.e

#=\> private method `e’ called for #Test:0x3156460 (NoMethodError)

---

<div class="post-metadata">

**Author:** ![carbon\_monoxide](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/eb9ed0/32.png) [@carbon\_monoxide](https://www.ruby-forum.com/u/carbon_monoxide)\
**Post date:** [May 30, 2008, 4:22pm UTC](https://www.ruby-forum.com/t/defining-private-protected-class-attributes/139047/3 "2008-05-30T16:22:52Z")

</div>

Hi –

On Fri, 30 May 2008, Carbon Monoxide wrote:

> :a=  
> :b  
> :b=
> 
> public  
> def initialize  
> end  
> end

class C  
private  
attr\_accessor :a, :b  
public  
def initialize  
end  
end

David

---

<div class="post-metadata">

**Author:** ![carbon\_monoxide](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/eb9ed0/32.png) [@carbon\_monoxide](https://www.ruby-forum.com/u/carbon_monoxide)\
**Post date:** [May 31, 2008, 6:12am UTC](https://www.ruby-forum.com/t/defining-private-protected-class-attributes/139047/4 "2008-05-31T06:12:12Z")

</div>

Siep K. wrote:

> class Test  
> attr\_accessor :a, :b
> 
> def pub  
> end
> 
> private
> 
> def not\_pub  
> end
> 
> attr\_accessor :d, :e  
> end
> 
> t=Test.new  
> t.pub  
> t.e
> 
> #=\> private method `e’ called for #Test:0x3156460 (NoMethodError)

Thanks all!
