I think I prefer the OpenStruct approach.  It's more clear that "hey, we're just doing this to fool some methods we don't want to override".