# Ruby1.9, instance\_eval and private methods

**URL:** <https://www.ruby-forum.com/t/ruby1-9-instance-eval-and-private-methods/135734>\
**Category:** Ruby\
**Created:** [April 24, 2008, 3:21pm UTC](https://www.ruby-forum.com/t/ruby1-9-instance-eval-and-private-methods/135734 "2008-04-24T15:21:51Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Victor\_SZverokS\_She](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/46a35a/32.png) [@Victor\_SZverokS\_She](https://www.ruby-forum.com/u/Victor_SZverokS_She)\
**Post date:** [April 24, 2008, 3:21pm UTC](https://www.ruby-forum.com/t/ruby1-9-instance-eval-and-private-methods/135734/1 "2008-04-24T15:21:51Z")

</div>

Can somebody please explain this:

class A  
end

blk = proc do  
def test  
puts ‘test’  
end  
end

a1 = A.new

a1.instance\_eval &blk  
a1.test #=\> prints “test”

def indirect(a, &blk)  
a.instance\_eval &blk  
end

a2 = A.new

indirect(a2, &blk)

a2.test #=\> private method `test’ called for #\<A:0xad519c\>  
(NoMethodError)

In words: when block for instance\_eval is passed through several levels  
of  
methods, it evaluates into private methods.

Ruby1.9 version 2008-03-29

in Ruby1.8 both a1.test and a2.test work as expected

---

<div class="post-metadata">

**Author:** ![Victor\_SZverokS\_She](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/46a35a/32.png) [@Victor\_SZverokS\_She](https://www.ruby-forum.com/u/Victor_SZverokS_She)\
**Post date:** [April 24, 2008, 3:28pm UTC](https://www.ruby-forum.com/t/ruby1-9-instance-eval-and-private-methods/135734/2 "2008-04-24T15:28:26Z")

</div>

Victor ‘Zverok’ Shepelev wrote:

> Can somebody please explain this:

no, probably not 🙂

> Ruby1.9 version 2008-03-29

probably a bug.

Guy Decoux

---

<div class="post-metadata">

**Author:** ![Victor\_SZverokS\_She](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/46a35a/32.png) [@Victor\_SZverokS\_She](https://www.ruby-forum.com/u/Victor_SZverokS_She)\
**Post date:** [April 24, 2008, 8:51pm UTC](https://www.ruby-forum.com/t/ruby1-9-instance-eval-and-private-methods/135734/3 "2008-04-24T20:51:33Z")

</div>

On Thu, Apr 24, 2008 at 3:27 PM, ts [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > Ruby1.9 version 2008-03-29
> 
> probably a bug.  
> Guy do you think that Victor should file a bug report, I strongly  
> believe that this would be helpful.

Robert

---

<div class="post-metadata">

**Author:** ![Victor\_SZverokS\_She](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/46a35a/32.png) [@Victor\_SZverokS\_She](https://www.ruby-forum.com/u/Victor_SZverokS_She)\
**Post date:** [April 25, 2008, 10:04am UTC](https://www.ruby-forum.com/t/ruby1-9-instance-eval-and-private-methods/135734/4 "2008-04-25T10:04:32Z")

</div>

Robert D. wrote:

> Guy do you think that Victor should file a bug report, I strongly  
> believe that this would be helpful.

no, this is a known problem because it’s already corrected in my  
private version

Guy Decoux

---

<div class="post-metadata">

**Author:** ![Victor\_SZverokS\_She](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/46a35a/32.png) [@Victor\_SZverokS\_She](https://www.ruby-forum.com/u/Victor_SZverokS_She)\
**Post date:** [April 25, 2008, 10:45am UTC](https://www.ruby-forum.com/t/ruby1-9-instance-eval-and-private-methods/135734/5 "2008-04-25T10:45:06Z")

</div>

On Fri, Apr 25, 2008 at 10:03 AM, ts [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Robert D. wrote:
> 
> > Guy do you think that Victor should file a bug report, I strongly  
> > believe that this would be helpful.
> 
> no, this is a known problem because it’s already corrected in my  
> private version

## ok that’s why I asked, there was no bug for this on Rubyforge’s tracker, right? Thx Guy

[http://ruby-smalltalk.blogspot.com/](http://ruby-smalltalk.blogspot.com/)

* * *

Whereof one cannot speak, thereof one must be silent.  
Ludwig Wittgenstein

---

<div class="post-metadata">

**Author:** ![Victor\_SZverokS\_She](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/46a35a/32.png) [@Victor\_SZverokS\_She](https://www.ruby-forum.com/u/Victor_SZverokS_She)\
**Post date:** [April 25, 2008, 10:48am UTC](https://www.ruby-forum.com/t/ruby1-9-instance-eval-and-private-methods/135734/6 "2008-04-25T10:48:40Z")

</div>

Robert D. wrote:

> ok that’s why I asked, there was no bug for this on Rubyforge’s tracker, right?

Well, each time that you see ‘instance\_eval &block’ you can expect  
a bug and this was reported in rubyforge

Guy Decoux
