From: Jayson Williams Date: 2007-10-22T12:39:53+09:00 Subject: Re: How to use a hash inside a Struct? I think both of these methods will work Thing = Struct.new(:attr1,:attr2,:attr3) t = Thing.new(Hash.new, nil, nil) and... > require 'ostruct' > > house = OpenStruct.new > house.room = {:room_id => 'id', :room_name => 'name'} > house.attr1 = 'some value' I was thinking that the attributes in the structure had to be typed first (a bit of c left in me). But it makes sense that I can set up the attribute and put whatever I want there. The second method looks a bit RubyTk'ish. I wonder if RubyTk uses OpenStruct. Anyway, Thanks. This is just what I was looking for Jayson On 10/21/07, Christian wrote: > It might be easier to use OpenStruct. > > require 'ostruct' > > house = OpenStruct.new > house.room = {:room_id => 'id', :room_name => 'name'} > house.attr1 = 'some value' > etc... > > On 10/22/07, Jayson Williams wrote: > > > > I am creating a class that creates elements of a house. For the part > > that creates new rooms, I wanted to link the room name with a room id. > > There may be multiple rooms with the same name, but only one room with > > the unique combination of name and id. I was thinking to use a Hash > > inside the structure definition of the room for the name and id. > > > > > > On 10/21/07, Daniel N wrote: > > > On 10/22/07, Jayson Williams wrote: > > > > > > > > Is there a way to use a hash inside a Structure. Something like: > > > > > > > > object = Struct.new(Hash.new(), :attr2, :attr3) > > > > > > > > I know this doesn't work, but do you get the idea of what I am trying > > to > > > > do? > > > > > > > > Jayson > > > > > > > > > > > Nope. What are you trying to do? > > > > > > -Daniel > > > > > > > > > > -- > > "Every child has many wishes. Some include a wallet, two chicks and a cigar, > but that's another story." >