On Sat, 29 Sep 2007 15:37:07 +0200, kazaam wrote:


> but how to achieve this? any idea or suggestion?

maybe:
Person=Struct.new(:name,:hobby,:home)
def read_data(io)
  io.gets.chomp.split('=')[1]
end
def read_person(io)
  name= read_data(io)
  hobby= read_data(io)
  job=io.gets
  home= read_data(io)
  Person.new(name,hobby,home)
end
people=[]
people << read_person(DATA) while not DATA.eof?
puts people

or

people={}
name = nil
DATA.each do |line|
 case line
 when /name=(.*)/
   name=$1
   people[name]= {'name'=>name}
 when /(hobby|home)=(.*)/
   people[name][$1]=$2
 end
end
p people

HTH



-- 
goto 10: http://www.goto10.it
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info