Ответ 1
OpenStruct имеет метод marshal_dump, который возвращает основную структуру хэша:
your_open_struct.marshal_dump.each{ |k,v| puts "#{k} => #{v}" }
Если вы используете Ruby 2.0, вы также можете использовать to_h:
your_open_struct.to_h.each{ |k,v| puts "#{k} => #{v}" }
В отличие от marshal_dump
, который возвращает фактическую структуру хэша, to_h
возвращает хэш со всеми ключами, преобразованными в символы для облегчения доступа.