In fact ruby have two types of structs. One is closed with predefined attributes - this one www.ruby-doc.org/core-2.1.2/Struct.html
The second one is more flexible and it allows various attributes, even those who is not know before - http://www.ruby-doc.org/stdlib-2.0/libdoc/ostruct/rdoc/OpenStruct.html in fact it is more like nicer hash.