50 lines
875 B
Ruby
50 lines
875 B
Ruby
#!/usr/bin/env ruby
|
|
|
|
class MegaGreeter
|
|
attr_accessor :names
|
|
|
|
def initialize(names = "World")
|
|
@names = names
|
|
end
|
|
|
|
def say_hi
|
|
if @names.nil?
|
|
puts "..."
|
|
elsif @names.respond_to?("each")
|
|
@names.each do |name|
|
|
puts "Hello #{name}!"
|
|
end
|
|
else
|
|
puts "Hello #{@names}!"
|
|
end
|
|
end
|
|
|
|
def say_bye
|
|
if @names.nil?
|
|
puts "..."
|
|
elsif @names.respond_to?("join")
|
|
puts "Goodbye #{@names.join(", ")}. Come back soon!"
|
|
else
|
|
puts "Goodbye #{@names}. Come back soon!"
|
|
end
|
|
end
|
|
end
|
|
|
|
if __FILE__ == $PROGRAM_NAME
|
|
greeter = MegaGreeter.new
|
|
greeter.say_hi
|
|
greeter.say_bye
|
|
|
|
greeter.names = "Zeke"
|
|
greeter.say_hi
|
|
greeter.say_bye
|
|
|
|
greeter.names = ["Albert", "Brenda", "Charles", "Dave", "Engelbert"]
|
|
greeter.say_hi
|
|
greeter.say_bye
|
|
|
|
greeter.names = nil
|
|
greeter.say_hi
|
|
greeter.say_bye
|
|
end
|