Михаил обнови решението на 14.11.2011 16:31 (преди около 13 години)
+REPOSITORY = 'http://github.com/oplik/ruby-retrospective-2'
+#не съм решил трета задача, прочетох, че трябва и трите да са
+#решени, за да бъдат погледнати въобще, но понеже първа и втора
+#минават тестовете реших да ги кача
+
+# 20 неща, които научих:
+# Тъй като до сега не бях подкарвал нито една от задачите
+# и не бях ходил на лекции, изтеглих една книга и научих доста
+# неща
+#
+# 1. Array#flatten -> в началото го използвах без аргумент,
+# след това видях, че може да се зададе дълбочина на
+# "изравняването"
+# 2. Enumerable и всичко свързано с него, като за началото
+# inject() -> изпълнява блок от код обхождайки даден масив
+# или хеш, като при всяко следващо изпълнение си предава
+# последния изпълнен ред от миналото изпълнение
+# 3. yield -> ако подадеш блок като аргумент на функция, той
+# се извиква с yield, като ако блока се нуждае от аргументи,
+# те също му се предават чрез yield
+# 4. is_a? проверява дали дадена променлива е от даден клас
+# (предполагам няма разлика с kind_of?)
+# 5. Array#join превръща даден масив в стринг, което се оказа
+# доста удобно за първата задача
+# 6. Че трябва да зададеш начална стойност на променливите, за
+# да може да прибяваш към тях. То е логично, но си мислех, че
+# по подразбиране всяка променлива е нулев интеджер, в което
+# няма логика. В последствие намерих и Hash#default, задаващ
+# 7. Разбрах, че масиви и стрингове могат да се адресират от към
+# края си. Тоест елемента на последна позиция може да бъде
+# взет с [-1]
+# 8. В последствие разбрах и, че за да изрежа даден масив или
+# стринг и да взема всички елементи без първия мога да
+# ползвам [1..-1]
+# 9. Разбрах и че конструктора на Hash може да приеме масив,
+# след което да създаде поредица от ключове и стойности
+# 10. Научих, че може да задам стойности на серия от променливи
+# по-следния начин: var_1, var_2 = 1, 2
+# 11. Изглежда логично, но видях, че има метод за взимане на
+# последната буква в стринг end_with
+# 12. Разбрах, че има алтернатива, точно обратна на if -> unless
+# 13. Доста полезен метод за масиви uniq и uniq!, оставя само
+# уникалните елементи в даден масив, оказа се полезен
+# в задачата с песните, където тагове идваха от няколко
+# места
+# 14. Мога да изпълнявам конюнкции, дизюнкции и сечения върху
+# масиви -> което си е супер
+# 15. Метода за конкатениране на два масива Array#concat
+# 16. Следват и няколко метода от Enumerable: първо е select,
+# изпълняващ даден блок код върху масив или хеш и връщащ
+# в нов масив елементите изпълняващи условието
+# 17. all? проверяващ дали всички елементи изпълняват дадено
+# условие
+# 18. Бях разочарован, че не може да пренасяш условия на няколко
+# реда: тоест if. .... and
+# .... and .... не може, или аз не успях да го
+# подкарам
+# 19. String#strip - премахва всички бели пространства в
+# началото на даден стринг -> доста удобно за втората задача
+# 20. Ако бях написал и третата задача може би щях да науча още
+# доста неща, но за мое съжаление пак почнах късно