Ruby → Знакомство с Gem. Часть вторая
Доброго времени суток!
Наконец-то я нашёл немного времени для того, чтобы продолжить своё повествование о разнообразных чудесах в Ruby. Как вы помните, в прошлой части мы познакомились с основами написания своего гема. Мы узнали, какой минимальный набор файлов должен быть для того, чтобы его собрать. Также мы узнали как мы можем опубликовать своё творение в RubyGems. В тот же день (после написания первой части) в RubyGems неожиданно проявился всплеск гемов под названием hello-world. Причём я застал довольно много вариаций оного. Некоторые даже не удосужились поменять строку, где указывается автор гема.
Некоторые вовсе задавали гему следующие значения версий:
В общем было достаточно много других вариаций, что меня, как автора, безусловно, не могло не радовать.
Вместо введения
Наконец-то я нашёл немного времени для того, чтобы продолжить своё повествование о разнообразных чудесах в Ruby. Как вы помните, в прошлой части мы познакомились с основами написания своего гема. Мы узнали, какой минимальный набор файлов должен быть для того, чтобы его собрать. Также мы узнали как мы можем опубликовать своё творение в RubyGems. В тот же день (после написания первой части) в RubyGems неожиданно проявился всплеск гемов под названием hello-world. Причём я застал довольно много вариаций оного. Некоторые даже не удосужились поменять строку, где указывается автор гема.
g.author = "krovatti"
Некоторые вовсе задавали гему следующие значения версий:
g.version = "666"
g.version = "111"
g.version = "911"
В общем было достаточно много других вариаций, что меня, как автора, безусловно, не могло не радовать.
Ruby → Знакомство с Gem. Часть первая
Доброго времени суток!
Каждый рубист, да и вообще программист, рано или поздно начинает задумываться о написании своих библиотек. Ему начинает надоедать перетаскивание одних и тех же кусков кода в другие проекты. В Ruby лекарством от данного заболевания являются gem'ы. Итак, давайте познакомимся с ним поближе.
Введение
Каждый рубист, да и вообще программист, рано или поздно начинает задумываться о написании своих библиотек. Ему начинает надоедать перетаскивание одних и тех же кусков кода в другие проекты. В Ruby лекарством от данного заболевания являются gem'ы. Итак, давайте познакомимся с ним поближе.
Ruby on Rails → Inboxes: личные сообщения в Rails-приложении

Одна из тривиальных задач для RoR-разработчика: реализовать функционал “инбоксов”, или личных сообщений. Решать эту задачу приходиться чуть ли не на каждом из проектов, поэтому столкнувшись с этим в очередной раз я принял решение создать удобный компонент мессенджера для приложения на Rails 3.1, который в дальнейшем можно будет легко и удобно подключать к любому приложению.
Представляю gem Inboxes.
Возможности:
- подсчет непрочитанных переписок
- ведение личных и групповых дискуссий
- создание групповых переписок с любыми пользователями
- управление участниками групповых переписок
- полная поддержка асинхронной работы: новые сообщения будут приходить мгновенно, как в обычном IM-клиенте
Для авторизации и идентификации пользователей gem интегрируется с Devise, для проверки прав — с CanCan.
Ruby → Пишем свой первый gem из песочницы
Хочу рассказать Вам свой опыт написания gem. Данная идея возникала у меня давно, но до реализации все никак не доходила. Все упиралась в банальную лень и отсутствие достаточной мотивации. Однако неделю назад мне достался проект, связанный с сервером рассылки писем.
На первом этапе нужно было определиться с тем, как будет создаваться библиотека: с нуля или с помощью какого-то генератора. Для первого раза, на мой взгляд, писать с нуля будет достаточно сложно и долго, поэтому рассмотрим известные генераторы. Небольшой поиск показал такие gems: hoe, newgem, bundler. Лично мне понравились два – newgem и bundler. Первый представляет полный комплект шаблонов, охватывающий множество случаев. Но я выбрал bundler за его простоту, минимальный набор сгенерированных файлов и набор rake tasks для создания пакета и его дальнейшей публикации.
Выбираем генератор
На первом этапе нужно было определиться с тем, как будет создаваться библиотека: с нуля или с помощью какого-то генератора. Для первого раза, на мой взгляд, писать с нуля будет достаточно сложно и долго, поэтому рассмотрим известные генераторы. Небольшой поиск показал такие gems: hoe, newgem, bundler. Лично мне понравились два – newgem и bundler. Первый представляет полный комплект шаблонов, охватывающий множество случаев. Но я выбрал bundler за его простоту, минимальный набор сгенерированных файлов и набор rake tasks для создания пакета и его дальнейшей публикации.
Ruby → RubyGems — подробно

Для начала определимся с понятиями:
RubyGems — фрэймворк для установки и запаковки Ruby библиотек и приложений.
gem — пакет(файл) с библиотекой или приложением. Имеет стандартизированный вид и расположен в хранилище в сети.
gem command tool — RubyGems предоставляет утилиту «gem» для работы с gem пакетами из командной строки. Она интегрирована с Ruby и позволяет получать доступ к установленным gem'ам как к библиотекам.
В чем же предназначение RubyGems?
До того как появилась RubyGems, для установки новой библиотеки нужно было найти, скачать её, попытаться установить, часто лишь для того, чтобы убедиться в отсутствии нужных зависимостей. Если же библиотека запакована с помощью RubyGems, достаточно попросить RubyGems сделать это за нас и получить установленную, интегрированную библиотеку со всеми нужными зависимостями. В дополнение ко всему утилита gem — платформонезависима, неважно какую ОС вы используете, везде механизм установки библиотек и приложений будет одинаков. Здорово, правда?
Под катом будут описаны:
1) Поиск, получение деталей, установка gem's
2) Доступ документации по установленному gem
3) Использование установленных gem's
4) Работа с версиями gem's
5) Создание собственных gem's
Ruby → GeoIP
GeoIP позволяет реализовать поиск информации о стране, городе по IP адресу или хосту.
При помощи GeoIP можно например определять предпочтительную локализацию вашего проекта для нового пользователя. Приятно зайти на сайт у которого по умолчанию интерфейс на твоем родном языке.
Областей применения довольно много.
При помощи GeoIP можно например определять предпочтительную локализацию вашего проекта для нового пользователя. Приятно зайти на сайт у которого по умолчанию интерфейс на твоем родном языке.
Областей применения довольно много.
Ruby → tweet-button
tweet-button — gem/plugin для генерации новой Twitter кнопки.
Использование
Включите TweetButton в вашем application хелпере. После этого в любом шаблоне можно вызвать хелпер:
Поддерживаются так же дополнительные параметры:
<%= tweet_button(:via => «peterc», :url => «hashtrain.com», :text => «AWESOME.») %>
Исходный код и документация доступны на Github: http://github.com/intridea/tweet-button
Использование
Включите TweetButton в вашем application хелпере. После этого в любом шаблоне можно вызвать хелпер:
<%= tweet_button %>Поддерживаются так же дополнительные параметры:
<%= tweet_button(:via => «peterc», :url => «hashtrain.com», :text => «AWESOME.») %>
Исходный код и документация доступны на Github: http://github.com/intridea/tweet-button
Ruby → rails_best_practices
rails_best_practices это GEM, для проверки качества кода рельсового приложения в соответствии с презентацией ihower в Rails Best Practices от Kungfu RailsConf.
Исходный код на GitHub: http://github.com/flyerhzm/rails_best_practices
До:

Исходный код на GitHub: http://github.com/flyerhzm/rails_best_practices
До:

Персональные блоги → Сборка Ruby, RubyGems и Ruby on Rails в новом Snow Leopard
Это инструкции по сборке и установке 64-битной версии Ruby, Rubygems и Ruby on Rails в новой Mac OS X 10.6 Snow Leopard.
Плюсы собственной сборки Руби в
Плюсы собственной сборки Руби в
/usr/local описаны тут и здесь.