Gem файл что это
Каждый рубист, да и вообще программист, рано или поздно начинает задумываться о написании своих библиотек. Ему начинает надоедать перетаскивание одних и тех же кусков кода в другие проекты. В Ruby лекарством от данного заболевания являются gem'ы. Итак, давайте познакомимся с ним поближе.
С чего начать
Для начала неплохо было бы отыскать запылившийся файлик с расширением .rb. Нашли? Ok, двигаемся дальше.
Далее нам необходимо создать файл с названием hello-world.gemspec, где, как вы, вероятно, догадались hello-world — имя вашего будущего gem'a.
Следующим нашим шагом будет заполнение этого самого файла (если так можно выразиться, файла-спецификации). Содержание его должно выглядеть следующим образом:
Отлично, но собирать то нам пока нечего! Почему? Мы забыли создать helloworld.rb. Давайте немедленно исправим нашу оплошность:
Фуууух! Теперь, когда мы имеем минимальный набор файлов, мы можем приступить к сборке нашего с вами gem'a. Для его сборки мы должны использовать команду
В случае удачного выполнения данной операции на выходе мы получим файл с название hello-world-1.0.gem. Всё, наш gem собран.
Постойте-ка
Вы хотите поделиться своим gem'ом с другими людьми? Если да, то вы запросто можете это сделать следующей командой:
После выполнения этой команды мы должны увидеть следующее:
All over the world
Теперь наш gem сможет установить любой рубист (хоть из Австралии), выполнив команду
После того, как установка будет завершена напишем следующий код и выполним его:
В результате чего мы увидим заветное в нашей консоли.
Стопэ!
Вообще-то мы наследили на RubyGems. Вы же об этом не забыли? Удалим наш gem следующей командой:
Да и из нашего списка gem'ов можно удалить. Поигрались и хватит!
Заключение
Вот и сказочке конец, а кто слушал — молодец.
Сегодня мы с вами познакомились с поистине замечательным инструментом по имени gem. Теперь вы знаете, что если что-то случиться, gem обязательно придёт к вам на помощь. А Чип, Чип, Чип… И Дейл к нам спешат.
Раньше, до того как появился менеджер пакетов RubyGems, джемы были равномерно рассосредоточены по интернету. Нужно было найти сайт интересующего джема, найти ссылку на скачивание архива, скачать, распаковать, проанализировать все зависимости текущего джема, лезть опять в гугл, искать зависимые джемы, находить, опять качать, опять смотреть на зависимости, и при всем при этом учитывать версии каждого джема, ибо один джем зависит от другого джема конкретной версии, и не факт что он будет работать с более новой или темболее более старой версией. И после всех этих плясок с бубном, нужно было все это проинсталлировать. Короче был пиздец. И слава богам, - появился RubyGems, менеджер пакетов который автоматизировал работу с джемами.
Gemset'ы
Поскольку джемы разных версий могут конфликтовать, под каждый проект принято создавать отдельные джемсеты, которые представляют из себя набор определенных джемов, с определенными версиями, заточенными под нужную вресию руби. Давай, специально под данный учебник создадим джемсет samouchka:
Где:
- use - начать использовать указанный джемсет
- 2.0.0 - версия руби (мы же помним да, что RVM позволяет работать на одном сервере с разными версиями руби)
- samouchka - имя джемсета
- --create - создать джемсет
- --default - использовать этот джемсет по умолчанию. В итоге, при каждом запуске окна терминала, только что созданный джемсет будет выбран автоматически.
проверить текущий джемсет можно командой
Установка gem'ов
Gem sinatra - микрофреймворк
Легким движением пальцев, фрейворк sinatra установлен. По умолчанию устанавливается самая последняя версия джема. Операция gem install скачивает архив и распаковывает его, проверяет зависимости, учитывая версии, и при необходимости скачивает и их тоже, не забыв при этом обновить для себя файлик спецификации. В состав джемов могут входить также и исполняемые файлы (я думаю bundler и rake наиболее известные). Команда gem install отлично подходит, когда к приложению подключается 1-2 джема. Но мы же не хотим плясать с бубном когда нам нужно установить 10-20 разных джемов, при всем при этом мы хотим чтобы одна часть джемов работала в окружении разработки, а другая в продакшне. На помощь приходит bundler
Bundler и Gemfile
Bundler - это джем, который занимается установкой джемов. Файл Gemfile является неотделимым атрибутом для работы bundler'a. Gemfile представляет из себя обычную программу на Ruby, которая описывает установщику какие джемы каких версий и для чего нам нужны.
Вот пример того, как может выглядить Gemfile:
Чтобы установить указанный джемы, достаточно перейти в каталог с Gemfile'ом и набрать в консоле команду
Помимо установки всех джемов в одну строку, bundle разрешает все конфликты зависимостей и записывает результат работы в файл Gemfile.lock, у меня он выглядит так:
У вас есть проблема с открытием .GEM-файлов? Мы собираем информацию о файловых форматах и можем рассказать для чего нужны файлы GEM. Дополнительно мы рекомендуем программы, которые больше всего подходят для открытия или конвертирования таких файлов.
Для чего нужен файловый формат .GEM?
Созвучно с темой драгоценных камней, принятой в среде Ruby, расширение имени файла .gem в основном служит для обозначения типа файлов "Программный модуль Ruby/Ruby on Rails" (.gem). Ruby — название серверного языка сценариев, а Ruby on Rails (RR) представляет собой эффективный и пользующийся большой популярностью фреймворк для веб-приложений. В среде Ruby on Rails "gem" (англ., самоцветный камень) — общепринятое название автономного подключаемого программного модуля, будь то расширение, библиотека, плагин или что-то иное. Такие модули-"самоцветы" упаковываются и распространяются в виде файлов .gem. Файл .gem представляет собой обычный архив формата tar, содержащий спецификацию модуля, один или несколько текстовых файлов с исходным кодом программ на языке Ruby, набор стандартных метафайлов вроде README, а также дополнительные ресурсы (сценарии JavaScript и прочее). Вне среды Ruby on Rails файлы .gem открываются и обрабатываются как обычный tar-архив с помощью любого совместимого архиватора.
Помимо этого, расширение .gem относится к типу файлов "Графический файл Corel Ventura" (.gem), появившемуся в 1990-х годах благодаря программе Ventura Publisher — давно устаревшему настольному издательскому приложению для среды DOS компании Ventura Software (позднее приобретенной корпорацией Corel и ставшей называться Corel Ventura). В не обновляемой с 2002 года издательской системе Corel Ventura документы сохранялись с использованием формата "метафайл GEM", истоки которого лежат в настольной графической среде GEM (Graphics Environment Manager, "Диспетчер графической среды") эпохи DOS. Здесь файл .gem представляет собой векторный графический проект Corel Ventura, который может быть открыт как в родной среде Corel Ventura, так и с помощью отдельных приложений с поддержкой чтения файлов формата GEM (напр., Corel Paint Shop Pro).
Программы, которые поддерживают GEM расширение файла
Программы, которые могут обрабатывать GEM файлы, следующие. Файлы с расширением GEM, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.
4. Работа с версиями gem's
Что если последняя вышедшая версия используемого вами gem не совместима с той которую вы используете сейчас?
К счастью, RubyGems позволяет нам одновременно хранить несколько версий gem. Указанные ниже команды установят обе версии builder.
% gem install builder -v 2.1.2
% gem install builder -v 1.1.0
% gem list builder
*** LOCAL GEMS ***
builder (2.1.2, 1.1.0)
Тут доступны ещё несколько трюков:
gem 'builder' , '> 1' — использовать версию больше чем первую
gem 'builder' , ''>= 2.2.0', ' < 3.0'' — использовать версию больше 2.2.0 и меньше 3.0
Полный список выражений:
= идентичная версия
!= неидентичная версия
> версия больше чем
< версия меньше чем
>= большая и равная версия
~> примерно больше чем (подробнее RubyGems docs)
3. Использование установленных gem's
После установки gem, достаточно написать команду require , чтобы подключить его. Т.е. работа с гемами не отличается от работы с обычными библиотеками.
Программы, обслуживающие файл GEM
Windows
2. Чтение документации по установленному gem
Есть 2 способа читать документацию:
1. Заходить в директорию с документацией гема и запускать файл index.html
2. Более простой способ, запустить web сервер, командой % gem server
По умолчанию он запустится на порту 8808 и будет доступен по ссылке localhost:8808
В браузере вы увидите документацию на все установленные gem's.
Путь к директории с gem's и порт могут быть перезаданы с помощью опций -p и -d
Как открыть файл GEM?
Причин, по которым у вас возникают проблемы с открытием файлов GEM в данной системе, может быть несколько. С другой стороны, наиболее часто встречающиеся проблемы, связанные с файлами GEM Vector Picture Format, не являются сложными. В большинстве случаев они могут быть решены быстро и эффективно без помощи специалиста. Ниже приведен список рекомендаций, которые помогут вам выявить и решить проблемы, связанные с файлами.
Шаг 1. Получить CorelDRAW
Шаг 2. Обновите CorelDRAW до последней версии
Если у вас уже установлен CorelDRAW в ваших системах и файлы GEM по-прежнему не открываются должным образом, проверьте, установлена ли у вас последняя версия программного обеспечения. Иногда разработчики программного обеспечения вводят новые форматы вместо уже поддерживаемых вместе с новыми версиями своих приложений. Если у вас установлена более старая версия CorelDRAW, она может не поддерживать формат GEM. Последняя версия CorelDRAW должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.
Шаг 3. Свяжите файлы GEM Vector Picture Format с CorelDRAW
Если проблема не была решена на предыдущем шаге, вам следует связать GEM файлы с последней версией CorelDRAW, установленной на вашем устройстве. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы
Процедура изменения программы по умолчанию в Windows
- Щелкните правой кнопкой мыши на файле GEM и выберите « Открыть с помощью опцией».
- Выберите Выбрать другое приложение → Еще приложения
- Последний шаг - выбрать опцию Найти другое приложение на этом. указать путь к папке, в которой установлен CorelDRAW. Теперь осталось только подтвердить свой выбор, выбрав Всегда использовать это приложение для открытия GEM файлы и нажав ОК .
Процедура изменения программы по умолчанию в Mac OS
Шаг 4. Убедитесь, что GEM не неисправен
Вы внимательно следили за шагами, перечисленными в пунктах 1-3, но проблема все еще присутствует? Вы должны проверить, является ли файл правильным GEM файлом. Проблемы с открытием файла могут возникнуть по разным причинам.
1. GEM может быть заражен вредоносным ПО - обязательно проверьте его антивирусом.
Если файл заражен, вредоносная программа, находящаяся в файле GEM, препятствует попыткам открыть его. Сканируйте файл GEM и ваш компьютер на наличие вредоносных программ или вирусов. Если файл GEM действительно заражен, следуйте инструкциям ниже.
2. Проверьте, не поврежден ли файл
3. Убедитесь, что у вас есть соответствующие права доступа
Иногда для доступа к файлам пользователю необходимы права администратора. Выйдите из своей текущей учетной записи и войдите в учетную запись с достаточными правами доступа. Затем откройте файл GEM Vector Picture Format.
4. Проверьте, может ли ваша система обрабатывать CorelDRAW
5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений
Последние версии программ и драйверов могут помочь вам решить проблемы с файлами GEM Vector Picture Format и обеспечить безопасность вашего устройства и операционной системы. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов GEM.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла GEM мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле GEM.
Для начала определимся с понятиями:
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
1. Поиск, получение деталей, установка gem's
Читайте также: