# Short cut to do a inspect method for object

**URL:** <https://www.ruby-forum.com/t/short-cut-to-do-a-inspect-method-for-object/99541>\
**Category:** Ruby\
**Created:** [July 24, 2006, 12:01am UTC](https://www.ruby-forum.com/t/short-cut-to-do-a-inspect-method-for-object/99541 "2006-07-24T00:01:16Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [July 24, 2006, 12:01am UTC](https://www.ruby-forum.com/t/short-cut-to-do-a-inspect-method-for-object/99541/1 "2006-07-24T00:01:16Z")

</div>

I have a object with following instance variables  
def initialize(symb)  
#puts symb  
@symbol=symb

@name=@exchange=@news=@summary=@sector=@industry=@category=@markedBad=""  
end

Is there a quick way to override the inpect method to return the  
instance variable name and values in a array?

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [July 24, 2006, 5:13am UTC](https://www.ruby-forum.com/t/short-cut-to-do-a-inspect-method-for-object/99541/2 "2006-07-24T05:13:25Z")

</div>

On Monday 24 July 2006 07:00, removed\_email\_address@domain.invalid wrote:

> I have a object with following instance variables  
> def initialize(symb)  
> #puts symb  
> @symbol=symb
> 
> @name=@exchange=@news=@summary=@sector=@industry=@category=@markedBad=""  
> end
> 
> Is there a quick way to override the inpect method to return the  
> instance variable name and values in a array?

class A  
def initialize  
@a=:aa  
@b=:bb  
@c=:cc  
end  
end  
A.new.inspect

# “#\<A:0xb7c197a4 @c=:cc, @a=:aa, @b=:bb\>”

class A  
def inspect  
instance\_variables.map{ |iv| [iv, eval(iv).inspect] }  
# yes, i’m ev(a|i)l here… use instance\_variable\_get instead - it’s  
just  
# too long for this line 😑  
end  
end

A.new.inspect

# [["@c", :cc], ["@a", :aa], ["@b", :bb]]

class A  
def inspect  
instance\_variables.map do |iv|  
“#{iv}=#{instance\_variable\_get(iv).inspect}”  
end .join(’, ')  
end  
end

A.new.inspect

# “@c=:cc, @a=:aa, @b=:bb”
