Создание простого приложения
Пришло время просмотреть документацию по сервису Heroku. Отлично: там есть два руководства, которые представляются мне полезными:
● «Ruby на Heroku для начинающих» («Getting Started with Ruby on Heroku») [28];
● «Развертывание приложений на основе Rack» («Deploying Rack-Based Apps») [29].
Судя по тому, что написано в этой документации, я должен сделать следующее.
1. Создать файлы с программами на своем компьютере.
2. Добавить их в «репозиторий git». (Понятия не имею, что это…)
3. Использовать команду git push heroku master, чтобы отправить готовое приложение на Heroku.
К счастью, в руководстве есть пример, и это приложение, написанное в среде Sinatra! Похоже, все проще, чем я думал…
Я создаю на своем компьютере новую папку. Эта папка называется «корневой», и в ней будут храниться все файлы программы.
Далее я открываю текстовый редактор (я пользуюсь редактором TextMate [30]) и, следуя инструкции, создаю три файла:
application.rb
config.ru
Gemfile
Ядро программы будет находиться в application.rb. Приложения, написанные на языке Ruby, всегда оканчиваются расширением. rb.
В файле config.ru будут храниться параметры конфигурации Rack. Не забывайте, что Sinatra построена над интерфейсом Rack, и поэтому вполне логично, что у него есть отдельный файл конфигурации. Эти файлы оканчиваются расширением. ru.
Gemfile — это место, где указываются библиотеки, используемые программой. Ваша программа может иметь только один такой файл, и поэтому он всегда называется одинаково — «Gemfile». Все довольно просто.
Документация по Heroku рекомендует после создания этих файлов написать простейшую программу «Hello, World!», чтобы проверить настройки. Вот что должно быть в файле application.rb:
require 'sinatra'
get '/' do
"Hello, World!"
end
А так выглядит файл config.ru:
require './application.rb'
run Sinatra:: Application
И наконец, Gemfile:
source 'http://rubygems.org'
gem 'sinatra'
Программа совсем короткая, и понять ее нетрудно.
● Gemfile указывает серверу включить библиотеку Sinatra, которая требуется для работы приложения. Библиотека будет загружена с сайта RubyGems.org.
● Файл config.ru указывает основное приложение, затем выполняет программу.
● После запуска программа будет отображать на экране «Hello, World!», когда кто-либо нажмет «/», что указывает на возврат на главную страницу сайта.
Неужели все так просто?
В руководстве говорится, что я должен сделать еще одну вещь: сохранить файлы в репозитории git (иногда его называют просто «репо»). Я не могу сказать, что означает этот термин, но знаю, что git уже установлен, а необходимые команды есть в руководстве:
$ git init.
$ git add — A
$ git commit — m "Initial Commit"
Первая команда создает новый репозиторий git в папке корневого каталога. Команда add — A добавляет все файлы в папку репозитория. Команда commit — m фиксирует файлы в репозитории вместе с сообщением программиста, что именно фиксируется. (Я пока не очень понимаю разницу между «добавлять» и «фиксировать» и беру этот вопрос на заметку, решив разобраться с ним позже.)
После ввода этих команд компьютер отвечает:
[master (root-commit) 8ed1099] Initial commit
3 files changed, 9 insertions (+), 0 deletions (-)
create mode 100644 Gemfile
create mode 100644 application.rb
create mode 100644 config.ru
Похоже, все получилось! Осталось одно действие: создать новый пустой сервер на Heroku, а затем «поместить» мою программу на этот сервер:
$ heroku create
Я получаю ответ:
Creating shielded-springs-2049… done, stack is stack
is bamboo-ree-1.8.7
http://shielded-springs-2049.heroku.com/ | git@heroku.
com: shielded-springs-2049.git
Git remote heroku added
Получилось! «Stack» указывает программное обеспечение, выполняемое на сервере, и в сообщении прописывается общедоступный URL сервера.
И последняя команда:
$ git push heroku master
Если все пройдет хорошо, то я официально помещу свое первое приложение для выполнения на Heroku.
Вот что я получаю в ответ:
Борис Александрович Тураев , Борис Георгиевич Деревенский , Елена Качур , Мария Павловна Згурская , Энтони Холмс
Культурология / Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / История / Детская познавательная и развивающая литература / Словари, справочники / Образование и наука / Словари и Энциклопедии