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

I have attached my ruby file

I don’t think you did


Paul S.
http://www.nomadicfun.co.uk

[email protected]

Paul S. wrote:

I have attached my ruby file

I don’t think you did


Paul S.
http://www.nomadicfun.co.uk

[email protected]

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.

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

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.