From: Juanger Date: 2008-07-21T10:29:23+09:00 Subject: Re: [QUIZ] Records and Arrays (#170) ------=_Part_37604_23509059.1216604085589 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Mine: require 'ostruct' class AryOfRecs def initialize @ary =3D [] end def <<(record) @ary << record keys =3D ( record.respond_to?("marshal_dump") ? record.marshal_dump.key= s : record.instance_variables) keys.each { |key| roa_way(key.to_s.sub("@","")) if record.respond_to?(key.to_s.sub("@","")) } end def [](index) return @ary[index] end def to_a @ary end private def roa_way(attrib) instance_eval( %(def #{attrib} @ary.map { |rec| rec.#{attrib} } end)) end end I only made the wrapper for an array of records, I't can be filled as in th= e example: data =3D AryOfRecs.new File.open("data.txt").each do |line| name, age, color =3D line.chomp.split(/,/) d =3D OpenStruct.new d.name =3D name d.age =3D age d.color =3D color data << d end puts data[2].name puts data.name[2] Or with a class: class Person attr_accessor :name, :age, :color end data =3D AryOfRecs.new File.open("data.txt").each do |line| name, age, color =3D line.chomp.split(/,/) d =3D Person.new d.name =3D name d.age =3D age d.color =3D color data << d end puts data[2].name puts data.name[1] --=20 Ash Mac durbatul=FBk, ash Mac gimbatul, ash Mac thrakatul=FBk agh burzum-is= hi krimpatul. Juanger. http://xocoruby.blogspot.com ------=_Part_37604_23509059.1216604085589--