Её можно найти в нескольких местах (включая собственный сайт Программистов- прагматиков), но мне больше всего нравится сайт ruby–doc.org. В этой версии слева имеется симпатичное оглавление, а также предметный указатель. (На ruby–doc.org
есть также много другой документации, например, о базовом API и стандартной библиотеке… В основном, там есть готовые к использованию документы обо всём, что касается Ruby. Проверьте сами.)
А почему же она называется «киркомотыга» («the pickaxe»)? Ну, там на обложке книги есть картинка киркомотыги. Мне кажется, это глупое название, но оно уже «прилипло».
Даже имея irb и киркомотыгу, вы иногда всё-таки не можете разобраться с чем- нибудь. Или, возможно, вы хотите знать, не делал ли уже кто-нибудь то, над чем вы сейчас работаете, чтобы выяснить, можно ли вам этим воспользоваться. В этих случаях вам нужно обратиться именно в ruby–talk, список рассылки о Ruby. В нём полно дружелюбных, умных, отзывчивых людей. Чтобы побольше узнать о нём или подписаться на него, взгляните сюда.
ПРЕДУПРЕЖДЕНИЕ: В этой рассылке каждый день приходит много почты. У меня она автоматически пересылается в другой почтовый ящик, поэтому она мне не мешает. Если же вы не желаете иметь дело со всей этой почтой, то это вам и не нужно! Список рассылки ruby–talk зеркалируется в новостную группу comp.lang.ruby, и наоборот, так что там вы можете увидеть те же самые сообщения. Любым из этих способов вы увидите одни и те же сообщения, просто немного в разных форматах. [Web–интерфейс к архиву этого списка рассылки находится по адресу: www.ruby– forum.com/forum/4. –
То, от чего я старался уберечь вас, но с чем вы непременно скоро столкнётесь, это принцип TMTOWTDI (произносится «Тим Тоуди») или «There's More Than One Way To Do It», что значит «Есть не один способ сделать что-либо».
В то время как одни будут говорить вам, какая замечательная вещь этот TMTOWTDI, другие относятся к нему совсем по-другому. На самом деле, у меня в основном не возникает по этому поводу никаких сильных эмоций, но я считаю, что это ужасный метод обучить кого-то, как нужно программировать. (Как будто научить делать что-то одним способом это само по себе не достаточно трудоёмкое и сложное дело!)
Однако теперь, когда вы выходите за рамки того учебника, вы будете читать гораздо более разнообразные программы. Например, мне приходят на ум по крайней мере пять различных способов создания строки (помимо заключения некоторого текста в одинарные кавычки), и каждый из них работает немного по-другому. Я показал вам только самый простой из этих шести.
А когда мы говорили о ветвлении, я показал вам if, но не показал unless. Предоставляю вам выяснить что это такое в irb.
Ещё одно приятное сокращение, которое вы можете использовать для if, unless и while, это симпатичная однострочная версия:
# Эти слова взяты из программы, которую я написал для генерирования
# англоподобной болтовни. Круто, да?
puts 'grobably combergearl kitatently thememberate' if 5 == 2**2 + 1**1
puts 'enlestrationshifter supposine follutify blace' unless 'Chris'.length
= = 5
grobably combergearl kitatently thememberate
И наконец, есть ещё один способ писать методы, которые принимают блоки (а не процедурные объекты). Мы видели это, когда мы захватывали блок и превращали его в процедурный объект, используя трюк с █ в списке параметров при определении функции. Тогда, чтобы вызвать блок, вы просто используете block.call. Ладно, есть способ покороче (хотя лично я нахожу его более запутанным). Вместо этого:
def doItTwice(█) block.call block.call end
doltTwice do
puts 'murditivent flavitemphan siresent litics' end
murditivent
n a h p m e t i v a l f
siresent
litics
murditivent
flavitemphan
siresent
litics
…вы делаете так:
def doltTwice yield yield end
doltTwice do
puts 'buritiate mustripe lablic acticise' end
buritiate
mustripe
lablic
acticise
buritiate
mustripe
lablic
acticise