From: Logan Capaldo Date: 2006-03-27T09:14:06+09:00 Subject: Re: Data Structure for n-dimension values with defaults On Mar 26, 2006, at 6:53 PM, Phrogz wrote: > Close, but it fails from the ordered-axis problem I've been seeing. > > puts table.get( :R, :german ) > #=> nil > > that should be "Ach!" > > Improved version: % cat table_structure.rb Row = Struct.new(:master, :english, :french, :german, :gibberish) table = { :master => Row.new('(yell)', nil, nil, 'Ach!', nil), :G => Row.new(nil, 'Wow!', 'Oh!', nil, nil), :PG => Row.new(nil, 'Holy Crap!', 'Merde!', nil, nil), :R => Row.new(nil, 'Holy Shit!', 'Mon Dieu!', nil, nil), :X => Row.new('$!@*', nil, nil, 'XXX', nil) } def table.get(rating, language) res = self[rating].send(language) if res.nil? res = self[rating].master end if res.nil? res = self[:master].send(language) end if res.nil? res = self[:master].master end res end puts table.get(:R, :german) puts table.get(:X, :german) puts table.get(:X, :english) % ruby table_structure.rb Ach! XXX $!@*