Advertisement
Guest User

mega_greeter.rb

a guest
Apr 26th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.10 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. class MegaGreeter
  4.   attr_accessor :names
  5.  
  6.   # Create the object
  7.   def initialize(names = "World")
  8.     @names = names
  9.   end
  10.  
  11.   # Say hi to everybody
  12.   def say_hi
  13.     if @names.nil?
  14.       puts "..."
  15.     elsif @names.respond_to?("each")
  16.       # @names is a list of some kind, iterate!
  17.       @names.each do |name|
  18.         puts "Hello #{name}!"
  19.       end
  20.     else
  21.       puts "Hello #{@names}!"
  22.     end
  23.   end
  24.  
  25.   # Say bye to everybody
  26.   def say_bye
  27.     if @names.nil?
  28.       puts "..."
  29.     elsif @names.respond_to?("join")
  30.       # Join the list elements with commas
  31.       puts "Goodbye #{@names.join(", ")}.  Come back soon!"
  32.     else
  33.       puts "Goodbye #{@names}.  Come back soon!"
  34.     end
  35.   end
  36. end
  37.  
  38.  
  39. if __FILE__ == $0
  40.   mg = MegaGreeter.new
  41.   mg.say_hi
  42.   mg.say_bye
  43.  
  44.   # Change name to be "Zeke"
  45.   mg.names = "Zeke"
  46.   mg.say_hi
  47.   mg.say_bye
  48.  
  49.   # Change the name to an array of names
  50.   mg.names = ["Albert", "Brenda", "Charles",
  51.               "Dave", "Engelbert"]
  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