Conozco esta característica proporcionada por ActiveSupport.¿Cómo puedo obtener acceso hash de estilo JavaScript?
h = ActiveSupport::OrderedOptions.new
h.boy = 'John'
h.girl = 'Mary'
h.boy # => 'John'
h.girl # => 'Mary'
Sin embargo, ya tengo un hash grande y quiero acceder a ese hash utilizando la notación de puntos. Esto es lo que probé:
large_hash = {boy: 'John', girl: 'Mary'}
h = ActiveSupport::OrderedOptions.new(large_hash)
h.boy # => nil
Eso no funcionó. ¿Cómo puedo hacer que esto funcione?
estoy usando ruby 1.9.2
Actualización:
sentimos que debería haber mencionado que no puedo usar openstruct porque no tiene each_pair método que tiene Struct. No sé las claves de antemano, así que no puedo usar openstruct.
Casi una pregunta idéntica: http://stackoverflow.com/questions/2240535/ruby-hash-keys-as-methods-on-a-class –
posible duplicado de llaves [Ruby - hash para nombres de métodos?] (http://stackoverflow.com/questions/6423484/ru by-hash-keys-to-method-names) –