Advertisement
TKVR

Ruby in 20 Minutes

Feb 16th, 2012
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.11 KB | None | 0 0
  1. # Ruby in 20 Minutes - http://www.ruby-lang.org/en/documentation/quickstart/
  2. # Greeter created by TKVR
  3. class MegaGreeter
  4.   attr_accessor :names
  5.  
  6.   # New Object
  7.   def initialize(names = "World")
  8.     @names = names
  9.   end
  10.  
  11.   # Says 'hi' to EVERYBODY
  12.   def say_hi
  13.     if @names.nil?
  14.       puts ". . ."
  15.     elsif @names.respond_to?("each")
  16.    
  17.     # @names is a list
  18.     @names.each do |name|
  19.       puts "Hello #{name}!"
  20.     end
  21.   else
  22.     puts "Hello #{@names}!"
  23.   end
  24. end
  25.  
  26. # Says 'bye' to EVERYBODY
  27. def say_bye
  28.   if @names.nil?
  29.     puts ". . ."
  30.     elsif @names.respond_to?("join")
  31.       # Join element list w/ commas
  32.       puts "Goodbye #{@names.join(", ")}. Come back soon!"
  33.     else
  34.       puts "Goodbye #{@names}. Come back soon!"
  35.     end
  36.   end
  37.  
  38. end
  39.  
  40. if __FILE__ == $0
  41.   mg = MegaGreeter.new
  42.   mg.say_hi
  43.   mg.say_bye
  44.  
  45.   # Change name to 'Ryan'
  46.   mg.names = "Ryan"
  47.   mg.say_hi
  48.   mg.say_bye
  49.  
  50.   # Change to array of names
  51.   mg.names = ["Albert", "Bizzy", "Randy", "Fred", "Debi"]
  52.   mg.say_hi
  53.   mg.say_bye
  54.  
  55.   # Change to nil
  56.   mg.names = nil
  57.   mg.say_hi
  58.   mg.say_bye
  59. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement