From: Jane Doe on
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/.

From: Paul Smith on
> I have attached my ruby file

I don't think you did

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

paul(a)pollyandpaul.co.uk

From: Jane O'Maley on
Paul Smith wrote:
>> I have attached my ruby file
>
> I don't think you did
>
> --
> Paul Smith
> http://www.nomadicfun.co.uk
>
> paul(a)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/.

From: Aldric Giacomoni on
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/.

From: Jane O'Maley on
> 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/.