Comments 7
Вы хотя бы исправили те недочеты, на которые вам в контакте показали =) Например, разделить логику с представлением, убрать евал-ы, ну и т.д. А вообще, ваш пост побудил меня написать расово-правильный (что-то вроде MVC) таск-менеджер. Как допишу, пришлю вам ссылку.
да как-то мне лень совсем для таких маленьких утилит следовать MVC :)
Ну на самом деле хорошо, что пост хоть чем-то кому-то пригодился.)
Ну на самом деле хорошо, что пост хоть чем-то кому-то пригодился.)
Вот, можно тут посмотреть — github.com/mshakhan/rtm. Правда, там тоже еще всё сыро, но уже работает.
За код в картинках, надо расстреливать!
Что-то не работает, вот что выдает:
~/Temp/todo $ ruby ./rtodo.rb
System files was created
> Welcome to R-todo v0.1, type 'help' to get info
help
^C./rtodo.rb:9:in `gets': Interrupt
from ./rtodo.rb:9
~/Temp/todo $ ruby ./rtodo.rb
System files was created
> Welcome to R-todo v0.1, type 'help' to get info
help
^C./rtodo.rb:9:in `gets': Interrupt
from ./rtodo.rb:9
Вместо load лучше использовать require.
Вместо 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.
… Дальше было лень всматриваться в код :)
Вместо 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.
… Дальше было лень всматриваться в код :)
Sign up to leave a comment.
Пишем простой консольный To-do менеджер на Ruby