add mvc
This commit is contained in:
1 parent
1736f62660
commit
3f7a3a5f98
1 file changed
+61
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
class PeopleDirectory
|
||||
def initialize(people)
|
||||
@people = people
|
||||
end
|
||||
|
||||
def find_people(name)
|
||||
@people.select { |person| person[:name] == name }
|
||||
end
|
||||
end
|
||||
|
||||
class UserInput
|
||||
def ask_name
|
||||
print "De quelle personne souhaites-tu connaître l'âge ? "
|
||||
gets.chomp
|
||||
end
|
||||
end
|
||||
|
||||
class PeopleView
|
||||
def hello_everybody(people)
|
||||
people.each do |person|
|
||||
puts "Hello #{person[:name]}!"
|
||||
end
|
||||
end
|
||||
|
||||
def show_people(people)
|
||||
if people.empty?
|
||||
puts "Aucune personne trouvée."
|
||||
else
|
||||
people.each do |person|
|
||||
puts "#{person[:name]} qui a #{person[:age]} ans"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Données
|
||||
people = [
|
||||
{ name: "Alice", age: 30},
|
||||
{ name: "Bob", age: 27},
|
||||
{ name: "Alice", age: 22}
|
||||
]
|
||||
|
||||
# Instancier les classes
|
||||
directory = PeopleDirectory.new(people)
|
||||
input = UserInput.new
|
||||
view = PeopleView.new
|
||||
|
||||
# Saluer tout le monde
|
||||
view.hello_everybody(people)
|
||||
|
||||
# Demander un nom
|
||||
name = input.ask_name
|
||||
|
||||
# Rechercher
|
||||
matches = directory.find_people(name)
|
||||
|
||||
# Afficher
|
||||
view.show_people(matches)
|
||||
|
||||
Reference in new issue
Block a user