Sorting array of names

Hi all,
I have a Ruby program that reads in a text file of first names and
surnames and prints them out in alphabetical order. Now I'm trying to
add the option: if a person has a middle name, to print that out too and
if they don't, to just print out their first name and surname.
I'm having issues when allowing a person to have a middle name or not
though. I think it is a problem with my to_s method and when I create a
new person. I have attached my ruby file, if anyone has any help or
advice on how to start this please let me know.
The text file of names is just like this, with the first entry having no
middle name and the second one having a middle name: John,Doe
                                               Jane,Doe,Amy

···

--
Posted via http://www.ruby-forum.com/.

I have attached my ruby file

I don't think you did

···

--
Paul Smith
http://www.nomadicfun.co.uk

paul@pollyandpaul.co.uk

Paul Smith wrote:

I have attached my ruby file

I don't think you did

--
Paul Smith
http://www.nomadicfun.co.uk

paul@pollyandpaul.co.uk

Ah I'm sorry when trying initially it came up with application error, I
didn't realise it was to be attached again. I saved it as a txt file
this time.

Attachments:
http://www.ruby-forum.com/attachment/4243/Person.txt

···

--
Posted via http://www.ruby-forum.com/\.

Jane O'Maley wrote:

Ah I'm sorry when trying initially it came up with application error, I
didn't realise it was to be attached again. I saved it as a txt file
this time.

def initialize fname, lname, mname=nil
  @fname = fname
  @lname = lname
  @mname = mname
end

# This makes the last name nil if it's not defined when you create the
person.

def to_s
  # easy-to-read solution
  temp = "#{@lname}, #{fname}"
  if !@mname.nil?
    temp += ", #{mname}"
  end
  return temp
end

···

--
Posted via http://www.ruby-forum.com/\.

def initialize fname, lname, mname=nil
  @fname = fname
  @lname = lname
  @mname = mname
end

# This makes the last name nil if it's not defined when you create the
person.

def to_s
  # easy-to-read solution
  temp = "#{@lname}, #{fname}"
  if !@mname.nil?
    temp += ", #{mname}"
  end
  return temp
end

Thank you very much for your help. Having sorted this out I was able to
find and fix some other problems I had with it too and can keep moving
forward with it.

···

--
Posted via http://www.ruby-forum.com/\.