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
> >
> >
> >
>
>