1.8.4 Struct bug

Found the following while making sure Net::SSH works with 1.8.4:

irb(main):001:0> Struct.new(:valid?).new.valid?
NoMethodError: undefined method `valid?’ for #<struct #<Class:
0x535994> :valid?=nil>
from (irb):1

This worked in 1.8.2, at least. Is this an intentional change? (This
only bites me in the unit tests for Net::SSH, and I can easily work
around it, just wanted to make sure problem this was known.)

  • Jamis

On 12/25/05, Jamis B. removed_email_address@domain.invalid wrote:

  • Jamis


FWIW, it seems to be broken since 1.8.3.

$ ruby -ve ‘Struct.new(:valid?).new.valid?’
ruby 1.8.3 (2005-09-21) [x86_64-linux]
-e:1: undefined method `valid?’ for #<struct #Class:0x2aaaab3e8160
:“valid?”=nil> (NoMethodError)

I couldn’t find any mention about this behavior both in 1.8.3

and 1.8.4 changes.