• Улучшенное протоколирование. Вывод из предыдущего метода log было трудновато читать, и было бы тем хуже, чем больше была бы вложенность. Было бы гораздо легче читать, если бы он делал отступы в строках для внутренних блоков. Чтобы это сделать, вам понадобится проверять, насколько глубоко вложен вызов
метода перед тем, как log хочет что-нибудь напечатать. Чтобы сделать это, примените глобальную переменную, т. е. переменную, которую вы можете видеть из любого места вашего кода. Чтобы сделать переменную глобальной, просто поставьте перед именем вашей переменной символ $, вот так: $global, $nestingDepth и $bigTopPeeWee. В конце концов, ваша программа протоколирования должна выводить примерно вот что:
Начинаю «внешний блок»…
Начинаю «другой небольшой блок»…
Начинаю «маленький-премаленький блок»…
…«маленький-премаленький блок» закончен,
вернул:
море любви
…«другой небольшой блок» закончен, вернул:
42
Начинаю «ещё один блок»…
…«ещё один блок» закончен, вернул: Я люблю
индийскую еду!
…«внешний блок» закончен, вернул: true
Ну вот почти и всё, что вы намеревались узнать из этого учебника. Мои поздравления! Вы изучили очень много! Возможно, вам не кажется, что вы помните всё, или же вы пропустили некоторые части… Ну и ладно, это нормально. Программирование – это не то, что вы знаете; это то, что вы можете вычислить. Покуда вы знаете, где найти то, что вы позабыли, у вас будет всё в порядке. Надеюсь, вы не думаете, что я написал всё это, не заглядывая куда-нибудь время от времени? Я именно так и делал. Мне также много помогали с кодом, выполняющим все примеры в этом учебнике. Но куда же я заглядывал и кого я просил о помощи? Давайте, я покажу вам…
11. Что не вошло в учебник
Итак, куда мы сейчас отправимся? Кого можно спросить, если у вас возник вопрос? А если вы хотите, чтобы ваша программа открывала web–страничку, отправляла электронную почту или масштабировала цифровое изображение? Что ж, есть полным- полно мест, где найдется помощь по Ruby. Но, к сожалению, такой ответ вам не слишком поможет, не так ли? :-)
Что касается меня, то на самом деле есть только три места, где я ищу помощи по Ruby. Если это небольшой вопрос, и я полагаю, что я могу сам поэкспериментировать, чтобы найти на него ответ, то я использую irb. Если это вопрос посерьёзнее, я обращаюсь к своей киркомотыге. А если я никак не могу разобраться с ним сам, то я прошу помощи в ruby–talk.
Если вы установили Ruby, то вы также установили irb. Чтобы его запустить, нужно просто перейти в командное окно и напечатать irb. Когда вы находитесь в сеансе irb, вы можете вводить любые выражения языка Ruby, какие пожелаете, а он будет выдавать вам их значения. Введите 1 + 2, и он выдаст вам 3. (Обратите внимание, что вам не нужно использовать puts.) Это похоже на гигантский калькулятор на Ruby. Когда вы закончите, просто введите команду exit.
В irb имеется гораздо больше этого, но обо всём этом вы можете узнать в «киркомотыге».
Абсолютно именно та книга по Ruby, которая нужна всем – это «Программирование на Ruby: Руководство прагматичного программиста», написанная Дэвидом Томасом и Эндрю Хантом (Программисты-прагматики). Хотя я очень рекомендую достать 2-е издание этой замечательной книги, где освещены все последние возможности Ruby, вы также можете взять немного более старую (но до сих пор в основном подходящую) версию, бесплатно доступную в Сети. (На самом деле, если вы установили версию Ruby для Windows, то она у вас уже имеется.)
В этой книге вы можете найти о руби Ruby почти всё, от основ до самых передовых возможностей. Она легко читается; она исчерпывающая; она почти безупречна. Хотелось бы, чтобы для всякого языка имелась бы книга подобного качества. В конце книги вы найдёте огромный раздел, где подробно описан каждый метод каждого класса, приведены объяснения и примеры. Я просто полюбил эту книгу!