-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnotepad.rb
More file actions
executable file
·29 lines (29 loc) · 1.65 KB
/
notepad.rb
File metadata and controls
executable file
·29 lines (29 loc) · 1.65 KB
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
# Подключаем класс Post и его детей
require_relative 'lib/post.rb'
require_relative 'lib/memo.rb'
require_relative 'lib/link.rb'
require_relative 'lib/task.rb'
# Как обычно, при использовании классов программа выглядит очень лаконично
puts "Hi, I'm your notebook!"
# Теперь надо спросить у пользователя, что он хочет создать
puts "What do you want to write in a notebook?"
# массив возможных видов Записи (поста)
choices = Post.post_types
choice = -1
until choice >= 0 && choice < choices.size # пока юзер не выбрал правильно
# выводим заново массив возможных типов поста
choices.each_with_index do |type, index|
puts "\t#{index}. #{type}"
end
choice = gets.chomp.to_i
end
# выбор сделан, создаем запись с помощью стат. метода класса Post
entry = Post.create(choice)
# сейчас в переменной entry лежит один из детей класса Post, какой именно,
# определилось выбором пользователя, переменной choice.
# Но мы не знаем какой, и обращаемся с entry как с объектом класса Post, этого, оказывается, достаточно.
# Просим пользователя ввести пост (каким бы он ни был)
entry.read_from_console
# Сохраняем пост в файл
entry.save
puts "Your record is saved!"