# Dynamically read object's attributes

**URL:** <https://www.ruby-forum.com/t/dynamically-read-objects-attributes/115200>\
**Category:** Ruby\
**Created:** [September 21, 2007, 5:13pm UTC](https://www.ruby-forum.com/t/dynamically-read-objects-attributes/115200 "2007-09-21T17:13:01Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![mpaxton](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8c91f0/32.png) [@mpaxton](https://www.ruby-forum.com/u/mpaxton)\
**Post date:** [September 21, 2007, 5:13pm UTC](https://www.ruby-forum.com/t/dynamically-read-objects-attributes/115200/1 "2007-09-21T17:13:01Z")

</div>

I want to read the values of instance variables in an object, but I  
don’t know how to reach them. I think the code should be something  
like:

def read\_stuff  
s = “Class: #{self.class}:\n”  
s += “Instance variables:\n”  
self.instance\_variables.each do  
|var|  
s += “#{var}: #{SOMETHING}\n”  
end  
s += “\n”  
end

But I don’t know what to replace SOMETHING with. Anyone know?

---

<div class="post-metadata">

**Author:** ![mpaxton](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8c91f0/32.png) [@mpaxton](https://www.ruby-forum.com/u/mpaxton)\
**Post date:** [September 21, 2007, 5:18pm UTC](https://www.ruby-forum.com/t/dynamically-read-objects-attributes/115200/2 "2007-09-21T17:18:15Z")

</div>

Mark P. wrote:

> I want to read the values of instance variables in an object, but I  
> don’t know how to reach them. I think the code should be something  
> like:
> 
> def read\_stuff  
> s = “Class: #{self.class}:\n”  
> s += “Instance variables:\n”  
> self.instance\_variables.each do  
> |var|  
> s += “#{var}: #{SOMETHING}\n”  
> end  
> s += “\n”  
> end
> 
> But I don’t know what to replace SOMETHING with. Anyone know?

Object#instance\_variable\_get

---

<div class="post-metadata">

**Author:** ![mpaxton](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8c91f0/32.png) [@mpaxton](https://www.ruby-forum.com/u/mpaxton)\
**Post date:** [September 21, 2007, 5:19pm UTC](https://www.ruby-forum.com/t/dynamically-read-objects-attributes/115200/3 "2007-09-21T17:19:14Z")

</div>

Alle venerdÃ¬ 21 settembre 2007, Mark P. ha scritto:

> ```
> s += "#{var}: #{SOMETHING}\n"
> end
> s += "\n"
> 
> ```
> 
> end
> 
> But I don’t know what to replace SOMETHING with. Anyone know?

instance\_variable\_get var

Stefano

---

<div class="post-metadata">

**Author:** ![mpaxton](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8c91f0/32.png) [@mpaxton](https://www.ruby-forum.com/u/mpaxton)\
**Post date:** [September 21, 2007, 5:20pm UTC](https://www.ruby-forum.com/t/dynamically-read-objects-attributes/115200/4 "2007-09-21T17:20:14Z")

</div>

Thanks to both of you.

Mark

Stefano C. wrote:

> Alle venerdÃ¬ 21 settembre 2007, Mark P. ha scritto:
> 
> > ```
> > s += "#{var}: #{SOMETHING}\n"
> > end
> > s += "\n"
> > 
> > ```
> > 
> > end
> > 
> > But I don’t know what to replace SOMETHING with. Anyone know?
> 
> instance\_variable\_get var
> 
> Stefano

---

<div class="post-metadata">

**Author:** ![mpaxton](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8c91f0/32.png) [@mpaxton](https://www.ruby-forum.com/u/mpaxton)\
**Post date:** [September 21, 2007, 5:23pm UTC](https://www.ruby-forum.com/t/dynamically-read-objects-attributes/115200/5 "2007-09-21T17:23:14Z")

</div>

On 9/21/07, Mark P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> ```
> end
> s += "\n"
> 
> ```
> 
> end
> 
> But I don’t know what to replace SOMETHING with. Anyone know?

instance\_variable\_get(var)

You might want to read rdoc for Object and Module for more similar  
interesting methods.
