Здравко обнови решението на 27.01.2016 01:26 (преди над 9 години)
+REPOSITORY = 'http://github.com/zdravkoandonov/ruby-retrospective-2015-2'
+
+# 1. Дефинициите на по-големи вложени класове е добре да са извън дефиницията на
+# външния клас за по-добра четимост на кода (Понякога и в друг файл)
+# 2. Добра идея в случая на пета задача е абстракция над Outcome с CommandHelpers#error и
+# CommandHelpers#success - отново подобрява четимостта
+# 3. Когато е уместно, за по-кратко може да се използва тернарния условен оператор
+# вместо if/else конструкция (repository.stage = branch.empty? ? {} : branch.last.stage)
+# 4. В низове при използване на заместване с % може да се използват хешове като
+# параметри при извикването и така да се подават параметри с разбираеми имена
+# (например %{rows} вместо %s)
+# 5. За краткост на кода може да се използва map(&:max) вместо map { |row| row.max }
+# (т.е. да се използва #to_proc на дадена функция вместо сами да си пишем съответния блок)
+# 6. Вместо масивите @turtle и @direction може да се използват @x, @y, @direction_x,
+# @direction_y за по-добра четимост на кода
+# 7. За предпочитане трябва да се използват недеструктивни функции - т.е. да променят
+# копие на обекта - много по лесно е при отстраняване на проблеми (#with_date и #with_date!)
+# 8. Можем лесно да предефинираме оператори за наши класове - например:
+# def -(other)
+# days - other.days
+# end
+# 9. Вместо сложни булеви изрази можем да използваме няколко private метода и прости
+# if-ове
+# 10. Вместо string.match(text), ако просто проверяваме дали text се съдържа в string,
+# можем да използваме по-краткото string[text]
+# 11. Винаги трябва да проверяваме дали нещо съществува (ако има възможност да не
+# съществува) преди да се опитамe да го достъпим
+# (if empty? or row > @table.size or column > @table[0].size)