Actually, let me step back. This is really good, but what if I wanted named parameters instead? Or is there a way to split a line and load it into a hash and pass that? The file doesn't have header information, but I know what the order of the fields will be. I guess I could just write a method, pass the line to it for parsing, and return a hash. Would that be about right? Thanks again! Sean On 11/9/06, Sean Hussey <seanhussey / gmail.com> wrote: > Wow. Now THAT is what I'm talking about. > > Thank you! > > On 11/9/06, Robert Klemme <shortcutter / googlemail.com> wrote: > > Jamey Cribbs <jcribbs / netpromi.com> wrote: > > > Sean Hussey wrote: > > >> Hi everone, > > >> > > >> I'm not quite sure what the best way to go about this is. I have a > > >> file with one user per line. Each line contains ID, username, phone, > > >> etc. I split all these up into variables and then either create a > > >> new user or update an existing user: > > >> > > >> File.open("users.txt", "r") do |file| > > >> file.each_line { |line| > > >> id, username, phone, lots, more, variables = > > >> line.chomp.split(/\|/); if user = ldap.get_entry(username) > > >> # Existing user. Check for update. > > >> user.update(I, hate, passing, all, of, the, variables, that, > > >> were, just, split) > > >> else > > >> # New user. Create! > > >> user.new(Same, here, see, what, I mean?) > > >> end > > >> } > > >> end > > >> > > >> Should I put it all into an array? Hash? Would that make the split > > >> line huge but save space on the method calls? How would you go about > > >> this? > > > > > > Well, if #update and #new are looking for the variables in the same > > > order that they are in the text file, you could do: > > > > > > > > > File.open("users.txt", "r") do |file| > > > file.each_line { |line| > > > rec = line.chomp.split(/\|/); > > > if user = ldap.get_entry(rec[1]) > > > # Existing user. Check for update. > > > user.update(*rec) > > > else > > > # New user. Create! > > > user.new(*rec) > > > end > > > } > > > end > > > > Or even > > > > File.open("users.txt", "r") do |file| > > file.each_line { |line| > > rec = line.chomp.split(/\|/) > > user.send(ldap.get_entry(rec[1]) ? :update : :new, *rec) > > } > > end > > > > :-) > > > > robert > > > > > > > >