Чтение онлайн

на главную - закладки

Жанры

Первые 20 часов. Как быстро научиться… чему угодно
Шрифт:

$ ruby — v

Вот что я получаю в ответ:

ruby 1.9.3p125 (2012–02–16 revision 34643) [x8664-darwin11.3.0]

Ура! Именно такое сообщение и должен вывести на экран компьютер.

В руководстве сказано, что если я захочу установить новую версию Ruby на этот компьютер, то должен снова запустить выполнение команд rbenv install, rbenv rehash и rbenv global. Достаточно просто.

Несмотря на то что поначалу эти команды вызвали у меня испуг, на самом деле они элементарны. То, что кажется невнятицей, — всего лишь сокращения.

После расшифровки этих сокращений понять команду легко.

Полезно помнить, что никто не знает этих тонкостей с рождения. В большинстве случаев нужно потратить несколько минут на чтение документации, а затем попробовать ввести то, что там написано [20].

Установка библиотек Ruby (Gems)

Теперь, когда на компьютере есть последняя версия Ruby, настало время выяснить, как установить нужные мне библиотеки, в том числе Sinatra.

Библиотеки языка Ruby называются gems, и, как оказалось, установить их очень легко. Вот команда, которая устанавливает библиотеку Sinatra:

$ gem install sinatra

Для обновления Sinatra до последней версии нужно ввести следующую команду:

$ gem update sinatra

Что может быть проще?

Однако, прежде чем устанавливать остальные библиотеки, я хочу убедиться, что программа gem у меня тоже обновлена. Поскольку мой компьютер поставлялся со старой версией Ruby, то вполне вероятно, что все связанное с этим языком программное обеспечение тоже нуждается в обновлении.

Потратив немного времени, я нахожу команду для обновления gem для Ruby.

$ gem update — system

Довольно просто.

Запуская команду gem install, я замечаю, что она устанавливает и другие библиотеки, такие как rack, rack-protection и tilt. Эти дополнительные библиотеки называются средствами поддержки зависимостей. Они нужны для работы Sinatra и поэтому автоматически загружаются по команде gem install.

Книги

Теперь, будучи готовым приступить к программированию приложений на языке Ruby, я решил обратиться к двум справочникам по Ruby, которые чаще всего рекомендуют на Stack Overflow: «Программирование на языке Ruby» («The Well-Grounded Rubyist») (2009) Дэвида А. Блэка и «Красноречивый Ruby» («Eloquent Ruby») (2011) Расса Олсена. Обе книги представляют собой вводные пособия, предназначенные для того, чтобы познакомить читателя с основными концепциями и приемами Ruby, а также справочники.

Я также купил книгу «Sinatra: к работе готов» («Sinatra: Up and Running») (2011) Алана Харриса и Константина Хассе. Эта книга представляет собой вводный курс в среду программирования Sinatra. Подробная документация на Sinatra имеется в Сети, но книга содержит множество примеров, которые поясняют, как использовать Sinatra для решения стандартных задач.

Просматривая эти книги, я нашел несколько ссылок на сайты, которые могут служить справочниками по синтаксису Ruby.

The Official Beginner’s Guide to Ruby [21].

The Ruby Refresher [22].

Ruby Security Reviewer’s Guide [23].

Для

начала этого справочного материала вполне достаточно, и я выделил полтора часа для быстрого просмотра всего, что у меня есть.

Я брал каждую книгу, изучал содержание и указатель, отмечая термины и понятия, которые казались мне важными. Я также выделял концепции, упоминаемые многократно, и обращал внимание на порядок их появления. Я читал заголовки и врезки. Закончив с книгами, я проделал то же самое с сайтами.

Вот что мне удалось выяснить. Помимо переменных, условных операторов, исключений и других основных понятий программирования, язык Ruby строится на двух основных концепциях: объектах и методах.

Объекты — это существительные мира программирования; с ними мы можем что-то делать. Допустим, я хочу создать в Ruby новую переменную под названием firstname (имя) и хочу, чтобы она содержала мое имя. В Ruby эта команда имеет вид:

firstname = "Josh"

Довольно просто. Помещая имя Josh в кавычки, я указываю Ruby, что имя — это строка, то есть последовательность букв и цифр. Это делает firstname объектом класса «строка». (Класс — это особый тип объектов с определенными характеристиками.)

Строки не единственный класс объектов. Вот пример класса целых чисел:

million = 1000000

Если объекты — это существительные языка программирования, то методы являются аналогом глаголов: то, что мы можем делать с объектами.

Предположим, у меня есть два строковых объекта, содержащих мои имя и фамилию:

firstname = "Josh"

lastname = "Kaufman"

Я могу использовать символ сложения (+), чтобы объединить эти строки, то есть соединить вместе:

fullname = firstname + lastname

Контрольный вопрос: что содержит переменная fullname? Если вы скажете «Josh Kaufman», то ошибетесь.

Не забывайте, что компьютер делает только то, что вы ему говорите. Вы не указывали, что нужно добавить пробел между «Josh» и «Kaufman». Поэтому переменная fullname будет содержать «JoshKaufman».

Поэтому если мы хотим исправить эту маленькую ошибку, то нужно изменить команду, добавив в нее пробел:

fullname = firstname + " " + lastname

«+» — это метод, и его действие зависит от того, к каким объектам он применяется. Если мы применим его к целым числам, а не строкам, то получим операцию сложения, а не объединения.

sum = million + million

Чему будет равна сумма? «2000000».

Встроенные методы Ruby помогут вам сразу же осуществить много интересных операций. Допустим, я хочу написать свои имя и фамилию задом наперед. Вместо того чтобы записывать это сочетание букв вручную или сочинять маленькую программу для расстановки букв в обратном порядке, я могу использовать метод reverse, доступный для каждого строчного объекта:

Поделиться:
Популярные книги

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

На границе империй. Том 10. Часть 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 3

Сердце для стража

Каменистый Артем
5. Девятый
Фантастика:
фэнтези
боевая фантастика
9.20
рейтинг книги
Сердце для стража

Жандарм 3

Семин Никита
3. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 3

Жена на пробу, или Хозяйка проклятого замка

Васина Илана
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Жена на пробу, или Хозяйка проклятого замка

Эволюционер из трущоб. Том 5

Панарин Антон
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 5

Отмороженный 11.0

Гарцевич Евгений Александрович
11. Отмороженный
Фантастика:
боевая фантастика
рпг
попаданцы
фантастика: прочее
фэнтези
5.00
рейтинг книги
Отмороженный 11.0

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

Бастард Императора. Том 4

Орлов Андрей Юрьевич
4. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 4

Кодекс Крови. Книга VII

Борзых М.
7. РОС: Кодекс Крови
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VII

Идеальный мир для Лекаря 5

Сапфир Олег
5. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 5

Камень. Книга 3

Минин Станислав
3. Камень
Фантастика:
фэнтези
боевая фантастика
8.58
рейтинг книги
Камень. Книга 3

Матабар

Клеванский Кирилл Сергеевич
1. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар