Ивана обнови решението на 14.11.2011 15:20 (преди около 13 години)
+RETROSPECTORY = 'https://github.com/Ivb1990/ruby-retrospective-1/tree/master/solutions'
+
+#Задача 1:
+# 1. Собственият клас се достъпва със self и не е удачно да се
+#извиква по друг начин.
+# 2. Циклите не са красиво и удобно средство. В ruby има готов
+#метод за всичко.
+# 3. Методът map може да спести обхождане на елементи.
+# 4. Научих как работи inject и, че не се ползва само за
+#сумиране, умножение и т.н. елементи на масив.
+# 5. За добавяне елемент в хеш е достатъчно hash[:a] = 30 , #примерно.
+# 6. Последният елемент от блок е връщаният резултат, ако има #такъв.
+# 7. Методи могат да се прилагат и в един и същ израз върху вече
+#приложени други такива.
+#
+#
+#Задача 2:
+# 1. С map лесно може да се обработва string, подаден като #вход.
+# 2. Как от подаден string можем да извлечем елементи от #съдържанието му и да ги "присвоим" на атрибутите на даден клас.
+# 3. case ... when.... when.... when.... не е влагане.
+# 4. Научих за какво служи lines.
+# 5. Нещата не са толкова прости, колкото изглеждат. Трябва да
+#се дефинира всяка "подробност". В първото домашно пропуснах
+#това при проверката за criteria.
+# 6. Един конструктор е достатъчен. Не е необходимо да #инициализираме отделно всеки елемент от входа.
+# 7. За да може да се каже, че даден код е добър (на ruby
+#специално), трябва съдържанието му да е максимално близо до
+#естествения език, т.е. всичко да се дефинира така, че само
+#да обяснява себе си, без необходимост този, който го чете
+#да мисли за какво става дума.
+#
+#Задача 3:
+#
+# 1. Когато правим конструктор на клас, много по-удобно е #неговите параметри да се задават като стойности на атрибути,
+#върху които след това да извършим определени действия,
+#отколкото да извършим тези действия директно в конструктора.
+# 2. Вместо да съставяме малко класове със сложни методи, по-#удачно е да разбием класовете, съответно да им дефинираме
+#по-прости методи. Така кодът става по-разбираем и по-лесен за
+#съставяне и употреба.
+# 3. Вместо хешове и масиви, по-удобно и добро е да се
+#ползват атрибути на клас. Така, вместо на търсим към кой #елемент на хеша/масива да се обърнем, ще си създадем обект от #тип този клас и дирекно ще достъпим методите му.
+# 4. За всеки атрибут на клас е удачно да си правим #конструктор, когато това е необходимо, за да бъде кодът ни
+#по-функционален.
+# 5. Касовата бележка се принтира ред по ред. Може да е смешно,
+#но аз си мислех, че трябва да се прави някаква магия.
+# 6. Колкото повече класове и методи дефинираме, стига да има
+#смисъл в това, толкова по-разумно.
+# 7. Научих как се прави подравняване при принтиране. В интерес #на истината не много добре, но поне разбрах общата идея. Ако
+#има някои функции в ruby, аналогични на | %-40s %5s | %8s |\n ,
+#например, ще се радвам да ни ги покажете, макар че аз поне не
+#намерих такива, освен rjust, която май върши работа само до
+#някъде.
+# 8. С *neshto.first може да се достъпва елемент на масив.