# Super.inspect returning escaped control chars? Why?

**URL:** <https://www.ruby-forum.com/t/super-inspect-returning-escaped-control-chars-why/194733>\
**Category:** Ruby\
**Created:** [September 9, 2010, 5:32pm UTC](https://www.ruby-forum.com/t/super-inspect-returning-escaped-control-chars-why/194733 "2010-09-09T17:32:45Z")\
**Posts on this page:** 4\
**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 9, 2010, 5:32pm UTC](https://www.ruby-forum.com/t/super-inspect-returning-escaped-control-chars-why/194733/1 "2010-09-09T17:32:45Z")

</div>

Hello,

I am new to Ruby please help…

Two questions…

1. I do not know why Contact#inspect returns an escaped string (e.g. \n  
changed to \n, etc.). Can someone help?

I have a Classes Contact and Person…

class Contact  
#…  
def inspect  
result = “”

```
# Print our email addresses...
# result << "\n"
result << "Email Addresses:"
email_addresses.each do |e|
  result << "\n\t#{e.type.to_s.capitalize}: " << e.to_s
end unless email_addresses.nil?

# Print our phone numbers...
result << "\n"
result << "Phone Numbers:"
phone_numbers.each do |e|
  result << "\n\t#{e.type.to_s.capitalize}: " << e.to_s
end unless phone_numbers.nil?

# Print our web sites...
result << "\n"
result << "Web S.s:"
web_sites.each do |e|
  result << "\n\t#{e.type.to_s.capitalize}: " << e.to_s
end unless web_sites.nil?

# This prints an unescaped string, if uncommented...
#puts result

            # But result returns an escaped string! Why?
result

```

end  
#…  
end

class Person \< Contact  
#…  
def inspect  
result =  
“Name: #{@last}, #{@first}”   
\<\< “\nPrefix: #{@prefix}”   
\<\< “\nMiddle: #{@middle\_initial}”   
\<\< “\nSuffix: #{@suffix}”

```
result << "\n"

# Everything above this returns an unescaped string...

            # super.inspect returns an escaped string! Why?
result << super.inspect

```

end  
#…  
end

1. Is there any built-in method/class method to unescape an escaped  
string (e.g. convert “\n”, “\t”, etc. to “\n”, “\t”, etc.?

Thank you much.

---

<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 9, 2010, 6:58pm UTC](https://www.ruby-forum.com/t/super-inspect-returning-escaped-control-chars-why/194733/2 "2010-09-09T18:58:54Z")

</div>

Please can you turn this into a standalone program which demonstrates  
the problem?

---

<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 9, 2010, 7:04pm UTC](https://www.ruby-forum.com/t/super-inspect-returning-escaped-control-chars-why/194733/3 "2010-09-09T19:04:46Z")

</div>

super.inspect doesn’t do what you expect. “super” calls the method of  
the same name in the ancestor class (ie ‘inspect’). You are then calling  
inspect on the value returned.

---

<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 9, 2010, 7:24pm UTC](https://www.ruby-forum.com/t/super-inspect-returning-escaped-control-chars-why/194733/4 "2010-09-09T19:24:32Z")

</div>

Brian C. wrote:

> super.inspect doesn’t do what you expect. “super” calls the method of  
> the same name in the ancestor class (ie ‘inspect’). You are then calling  
> inspect on the value returned.

Thank you, that was the problem. I am user to C#, C++, etc. where you  
would call the base class’ method explicitly. So, I was essentially  
calling super.inspect.inspect.

Thank you.
