Статьи

Рубин для новичков: работа с драгоценными камнями

Ruby — один из самых популярных языков, используемых в сети. Здесь мы начали новую сессию на Nettuts +, которая познакомит вас с Ruby, а также с отличными фреймворками и инструментами, которые сопровождают разработку на Ruby. Сегодня мы рассмотрим великолепную систему упаковки, которую Ruby предоставляет для распространения программ и библиотек: Gems.


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

  • Нужен интерфейс с Amazon S3?
  • Хотите быстро и легко REST Framework?
  • Нужно отправить электронную почту?
  • Хотите настроить веб-сервер?
  • Нужна тестовая структура (или три)?
  • Хотите конвертировать Markdown в HTML?

Это всего лишь несколько вещей, которые вы можете сделать с драгоценными камнями.

Короче, для этого есть жемчужина.


Прежде чем мы сможем установить и использовать гем, нам нужно установить библиотеку RubyGems. Конечно, сначала вам нужно будет установить Ruby, но он должен быть уже установлен.

Если вы используете Ruby 1.9. * (То, что мы используем в этой серии), вам не нужно беспокоиться об установке RubyGems; он встроен. Если вы решили использовать Ruby 1.8. *, его не сложно установить. Просто зайдите на страницу загрузки RubyGems , загрузите TAR или ZIP, откройте его и запустите ruby setup.rb в терминале из этой папки. Для этого вам могут потребоваться права администратора ( sudo в системах unix, запустите командную строку с «Запуск от имени администратора» в Windows). Это заставит вас работать.

Если вы думаете, что у вас уже установлен RubyGems, запустите gem -v чтобы получить номер версии. Последняя версия 1.6.2. Если вы хотите обновить, запустите gem update --system . Опять же, вам могут потребоваться права администратора. Я должен отметить, что если вы работаете в Windows и устанавливаете Ruby через RubyInstaller , у вас действительно установлен RubyGems.


Итак, теперь, когда у вас установлена ​​библиотека RubyGems, вы можете использовать ее для установки любых драгоценных камней. Как ты это делаешь? Опять же, это довольно просто. Трудная часть — найти драгоценный камень, который вы хотели бы использовать; часто, вы можете просто гуглить для любой функции, которую вы ищете. Как только вы найдете драгоценный камень, установите его так:

1
gem install GEM_NAME

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

Еще одно замечание об установке драгоценных камней: вы можете заметить, что документация к драгоценным камням говорит вам использовать sudo при установке. Если вы используете Mac и используете RVM (как и должно быть :)), просто отключите sudo . Использование этого установит гем для всех пользователей на компьютере, и это может вызвать проблемы с несколькими средами Ruby, которые вы можете иметь с RVM.

В этой серии мы будем использовать несколько драгоценных камней Ruby, поэтому вы увидите, как они будут работать в «реальном» проекте. Если вы хотите попробовать установить несколько сейчас, попробуйте гем Markdown (maruku) или драгоценный камень Amazon S3 (aws-s3).

1
2
gem install maruku
gem install aws-s3

Итак, вы установили свои драгоценные камни; что теперь? Ну, используйте их, конечно! Есть два способа использования драгоценных камней. Некоторые из них представляют собой отдельные программы ruby, которые вы будете запускать (чаще всего из командной строки), чтобы что-то сделать. Жемчужина Rails является отличным примером этого. Вы запускаете rails new PROJECT_NAME из командной строки, чтобы создать новый проект rails; затем вы будете использовать его в других случаях для генерации моделей, контроллеров и т. д. Затем, есть гемы, которые вы будете использовать только из собственных проектов, например гем Amazon S3. Это не очень хорошо само по себе, но довольно полезно в сочетании с вашим кодом. Если вы хотите использовать драгоценный камень из своего кода, сначала вам потребуется его. Обычно это делается вверху файла.

1
2
require ‘rubygems’ # only necessary on Ruby 1.8
require ‘aws/s3’ # the S3 gem

Я не верю, что мы обсуждали require раньше; Ruby не загружает все по умолчанию, поэтому вы можете использовать require для загрузки дополнительных библиотек, которые вы хотите использовать. Мы увидим больше этого, как мы продолжим.

Наконец, некоторые драгоценные камни делают оба. Самоцвет maruku преобразует Markdown в HTML. Я использую его из командной строки все время:

1
maruku doc.markdown

Он преобразует документ Markdown в HTML. Тем не менее, вы также можете использовать его из своего кода:

1
2
3
4
5
require ‘maruku’
  
str = «#This is a title\n\n* some\n* list\n* items»
md = Maruku.new(str)
md.to_html_document

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

Прежде всего, Bundler — это самоцвет; вы можете установить его, запустив gem install bundler .

Затем в корне вашего проекта создайте файл с именем Gemfile . Это объявит, какие драгоценные камни вам нужны для этого проекта.

Первая строка вашего Gemfile скажет Bundler, где взять ваши драгоценные камни. Драгоценные камни живут в онлайн-хранилищах, поэтому нужно будет знать, где их взять. В большинстве случаев достаточно использовать rubygems.org в качестве источника, но вы можете иметь несколько источников, если хотите.

1
source «http;//rubygems.org»

Затем просто перечислите ваши драгоценные камни, как это:

1
2
3
gem «rails», «3.0.1»
gem «maruku»
gem «aws-s3», :require => «aws/s3»

Обратите внимание, что мы можем сказать, какая версия драгоценного камня нам нужна, если нам нужна конкретная версия. Также обратите внимание на хэш (мы оставили скобки, потому что мы можем в этом случае) на третьем драгоценном камне. Это говорит Bundler, как мы должны require драгоценный камень. Это необходимо только в том случае, если верны две вещи: 1) требуется гем с именем, отличным от имени, с которым он установлен, и 2) мы используем Bundler для запроса гемов.

Если у вас много драгоценных камней, вы можете использовать Bundler, чтобы включить их в свой код. Просто сделай это:

1
2
require ‘bundler/setup’
Bundler.require(:default)

Это загрузит все эти драгоценные камни. Конечно, это гораздо полезнее, когда вы используете некоторые расширенные конфигурации Bundler.


В прошлый раз я спросил вас, читатели / наблюдатели, что вы хотите увидеть дальше. Вы четко сказали «Веб-материал!». На следующем уроке мы перейдем к использованию простой платформы Sinatra для создания веб-сайта. До тех пор!