-
Notifications
You must be signed in to change notification settings - Fork 0
/
greeter.rb
57 lines (49 loc) · 1.21 KB
/
greeter.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env ruby
class MegaGreeter
attr_accessor :names
# Création d'un objet
def initialize(names = "World")
@names = names
end
# Salut tout le monde
def say_hi
if @names.nil?
puts "..."
elsif @names.respond_to?("each")
# @names est une liste de noms : traitons les uns par uns
@names.each do |name|
puts "Hello #{name}!"
end
else
puts "Hello #{@names}!"
end
end
# Dire au revoir à tout le monde
def say_bye
if @names.nil?
puts "..."
elsif @names.respond_to?("join")
# Grouper les différents noms de la liste par des virgules
puts "Goodbye #{@names.join(", ")}. See you soon !"
else
puts "Goodbye #{@names}. See you soon !"
end
end
end
if __FILE__ == $0
mg = MegaGreeter.new
mg.say_hi
mg.say_bye
# Modifier le nom en Zeke
mg.names = "Zeke"
mg.say_hi
mg.say_bye
# Changer le nom pour un tableau
mg.names = ["Albert", "Brenda", "Charles"]
mg.say_hi
mg.say_bye
# Maintenant le nom n'est plus
mg.names = nil
mg.say_hi
mg.say_bye
end