[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: Stepping out on a Limb - some very ugly code

Raj Sahae

2/28/2007 7:16:00 PM

Samantha wrote:
> My code is exceedingly redundant. The only "woohoo!" I have about it, is
> that I didn't have to look anything up in reference to write it.
Well, I'm new to ruby too, but the most obvious things I would do is
loop the gets so that you don't write everything twice, and make a
method to handle the gets so that you don't write that 10 times. As far
as making it more "rubyish", I'm sure I would mess that up, but I guess,
with that in mind, I would at least put it in a class, and I personally
like using string interpolation, it's more readable for me.

Raj

#ResumeBuilder.rb

class ResumeBuilder
def initialize
puts("Welcome to ResumeBuilder v.1")
correct = ""
until correct.downcase == "yes"
@first_name = prompt_and_get("first name").chomp.capitalize
@last_name = prompt_and_get("last name").chomp.capitalize
@full_name = "#{@first_name} #{@last_name}"
puts("You have entered #{@full_name} as your name.
Is this correct? (yes/no)")
correct = gets.chomp
end
correct = ""
until correct.downcase == "yes"
@street_number = prompt_and_get("street number").chomp
@street_name = prompt_and_get("street name").chomp.capitalize
@city_name = prompt_and_get("city name").chomp.capitalize
@state_name = prompt_and_get("state").chomp.upcase
@zip_code = prompt_and_get("zip code").chomp
puts "You have told me that you live at:
#{@street_number} #{@street_name}
#{@city_name}, #{@state_name} #{@zip_code}
Is this correct? (yes/no)"
correct = gets.chomp
end
end

def prompt_and_get(string)
puts "Please enter your #{string}: "
gets
end
end

ResumeBuilder.new