Beginner Question: Formatted Text Data -> Hash -> Database.

I have a text document that has formatted data in it, and I am attempted to determine the best way to parse the data to break it up into hashes that I can then write to my databases. I suppose my issue is determining where to tell Ruby to STOP reading in data to write into the database. The file would be similar to this:

User: Username Phone: Phone number Address: Address Comments: Comments Data1: Data Data2: Data Data3: Data User: Username Phone: Phone number Address: Address Comments: Comments Data1: Data Data2: Data User: Username Phone: Phone number Address: Address Comments: Comments Data1: Data Data2: Data

It's not that difficult to chomp the \n and use a split to create a hash in a loop, but how do tell Ruby to start a new database write process if it hits a new "user" key value? Should I write a case statement to check each line for a "user" key and use that line to call a new instance of my database class/method? Is there a faster or more efficient way?

I'll be interested to see what responses you get, but I can't think of a more efficient way. I'd try something like:

my_file.each_line do |line|   if line ~= /$User/ and this_user.username.length > 0 then     if this_user.save then       puts("Saved user #{this_user.username}")     else       puts("Problem saving #{this_user.username}!:\n#{this_user.errors}")     end     this_user = User.new   end   attribute, val = line.split(/:\s*/)   this_user.send(attribute.lower, val) end

That's air-code obviously--may be wildly off...