# Testing use of binding: got spurious error message

**URL:** <https://www.ruby-forum.com/t/testing-use-of-binding-got-spurious-error-message/78209>\
**Category:** Ruby\
**Created:** [December 4, 2006, 2:15am UTC](https://www.ruby-forum.com/t/testing-use-of-binding-got-spurious-error-message/78209 "2006-12-04T02:15:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![richard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f0a364/32.png) [@richard](https://www.ruby-forum.com/u/richard)\
**Post date:** [December 4, 2006, 2:15am UTC](https://www.ruby-forum.com/t/testing-use-of-binding-got-spurious-error-message/78209/1 "2006-12-04T02:15:59Z")

</div>

Hi All,

The program below ends with eval(…) producing an error message, as  
shown in the comments at the end of the code. How can I direct the  
offending output to a “bit bucket”?

Thanks in Advance,  
Richard

class MyClass  
def initialize(n)  
@number = n  
end

```
def getBinding
	binding()
end

```

end

def show(a)  
a.each do |m|  
puts “\t” + m.inspect  
end  
end

obj1 = MyClass.new 19  
bind1 = obj1.getBinding

obj2 = MyClass.new 84  
bind2 = obj2.getBinding

puts "number for obj1 = " + eval(’@number’, bind1).to\_s  
puts "number for obj2 = " + eval(’@number’, bind2).to\_s

puts "# of methods: " + eval(methods.length.to\_s, bind1).to\_s  
puts "Methods: "  
dummy = eval(show(methods), bind1)  
puts “That’s all folks!”

=begin

# Result:

number for obj1 = 19  
number for obj2 = 84

# of methods: 46

Methods:  
[snip]  
TestBinding.rb:28:in `eval’: cannot convert Array into String  
(TypeError)  
from TestBinding.rb:28  
=end

---

<div class="post-metadata">

**Author:** ![richard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f0a364/32.png) [@richard](https://www.ruby-forum.com/u/richard)\
**Post date:** [December 4, 2006, 4:36am UTC](https://www.ruby-forum.com/t/testing-use-of-binding-got-spurious-error-message/78209/2 "2006-12-04T04:36:17Z")

</div>

On Dec 3, 2006, at 8:15 PM, Richard wrote:

> def show(a)
> 
> puts "number for obj1 = " + eval(’@number’, bind1).to\_s  
> puts "number for obj2 = " + eval(’@number’, bind2).to\_s
> 
> puts "# of methods: " + eval(methods.length.to\_s, bind1).to\_s  
> puts "Methods: "
> 
> # dummy = eval(show(methods), bind1)

show(obj1.methods) # \<= insert this  
show(eval(“methods”, bind1)) # \<= or this

> puts “That’s all folks!”

Regards, Morton

---

<div class="post-metadata">

**Author:** ![richard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f0a364/32.png) [@richard](https://www.ruby-forum.com/u/richard)\
**Post date:** [December 4, 2006, 6:31pm UTC](https://www.ruby-forum.com/t/testing-use-of-binding-got-spurious-error-message/78209/3 "2006-12-04T18:31:54Z")

</div>

Hi Morton,

> show(obj1.methods) # \<= insert this  
> show(eval(“methods”, bind1)) # \<= or this

That’s perfect. Thank you very much.

Incidentally, I trimmed the quotes and sorted the list: a very  
satisfying result!

Best wishes,  
Richard
