title: In Ruby, foo.inspect can print out all instance variables -- can we print out an individual one if there is no accessor?
body: <p>Often, we can use <code>p foo</code> or <code>foo.inspect</code> to see the instance variables, but is it only the default behavior and the object can choose to show something else (or hide all instance variables) (probably by re-defining the <code>inspect</code> method).</p>
  
  <p>The main question is, if I can see for <code>foo.inspect</code> that there is <code>@bar</code> being an object, having instance variable <code>@wah</code>, that has a value of <code>"hello"</code>, can I print out <code>@wah</code> directly, if there is no accessor (reader) available for <code>@bar</code> and <code>@wah</code>?   Usually, it should not be readable if there is no accessor, but what if for debugging purpose?</p>