Вы хотя бы исправили те недочеты, на которые вам в контакте показали =) Например, разделить логику с представлением, убрать евал-ы, ну и т.д. А вообще, ваш пост побудил меня написать расово-правильный (что-то вроде MVC) таск-менеджер. Как допишу, пришлю вам ссылку.
Вместо eval(«system.#{method}») — system.send(method)
eval(«system.#{method}(string_user_input)») — system.send(method, string_user_input)
system.keywords.each… — этому циклу стоит находиться в классе System (кстати, цикл лучше заменить на вызов find). А keywords лучше сделать константным хешем:
class System
KEYWORDS = { 'add' => 'task_add', 'remove' => 'task_remove', 'list' => 'task_list'}
#…
end
Для чтения файла целиком существует метод File#readlines.
Пишем простой консольный To-do менеджер на Ruby