Как вы получаете рубиновый драгоценный камень в пути включения для «требуют» - PullRequest
12 голосов
/ 26 марта 2009

Я создаю то, что, как я ожидаю, будет рубиновым камнем. У кого-нибудь есть хорошая ссылка на учебник по конвертации простой библиотеки или плагина в гем? Кроме того, особенно , какой процесс использует Ruby для поиска драгоценных камней? Кажется, это нечто большее, чем просто поместить файлы в путь к файлу (или моя конфигурация испорчена?).

Спасибо

Ответы [ 3 ]

26 голосов
/ 26 марта 2009

На самом деле это не сложно сделать вручную. Допустим, у вас есть библиотека whatever.rb, которую вы хотите распространить как драгоценный камень.

  1. создайте каталог lib и поместите копию whatever.rb в lib/whatever.rb.
  2. создайте файл whatever.gemspec и вставьте туда следующее, указав соответствующие значения:
    
     Gem::Specification.new do |spec|
       spec.name = 'the-name-of-your-gem'
       spec.version ='0.0.1'<br>
       # this is important - it specifies which files to include in the gem.
       spec.files = ["lib/whatever.rb"]<br>
       # optional, but useful to your users
       spec.summary = "A more longwinded description of your gem"
       spec.author = 'Your Name'
       spec.email = 'you@yourdomain.com'
       spec.homepage = '<a href="http://www.yourpage.com" rel="noreferrer">http://www.yourpage.com</a>'<br>
       # you did document with RDoc, right?
       spec.has_rdoc = true<br>
       # if you have a ruby forge project
       spec.rubyforge_project = 'your-project-name-on-rubyforge'<br>
       # if you have any dependencies on other gems, list them thusly
       spec.add_dependency('hpricot')
       spec.add_dependency('log4r', '>= 1.0.5')
     end
    
  3. Теперь, чтобы построить камень, используйте команду gem build:
    % gem build whatever.gemspec
    Successfully built RubyGem
    Name: the-name-of-your-gem
    Version: 0.0.1
    File: the-name-of-your-gem-0.0.1.gem
    %
    
  4. Вы можете проверить локально, используя gem install the-name-of-your-gem-0.0.1.gem Чтобы потом использовать свою библиотеку в скрипте, просто сделайте следующее вверху:
    
    require 'rubygems' # puts gem libraries in the require path
    require 'whatever' # loads your library
    

Для получения дополнительной информации о различных настройках в файле gemspec проверьте Справочник GemSpec .

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

2 голосов
/ 26 марта 2009

Для создания рубинового камня вы можете посмотреть на newgem или ювелир .

2 голосов
/ 26 марта 2009

Здесь есть старое от Доктора Ник, который использует newgem. Возможно, это немного устарело.

Несколько новее, мы получаем gemify, который, кажется, основывается на вышеизложенном. Вот пост об этом

Что касается путей, то после того, как вы выполнили gem install <some-useful-stuff> и ваш требуемый код выполнил require 'rubygems' или вы установили RUBYOPT = -rubygems (это только для Windows? Я не уверен), затем последующие Выполнение require также будет искать в каталоге gems соответствующую библиотеку.

Существует также более явная (но не рекомендуемая) команда require_gem, которая теперь является просто gem, которая позволяет указывать номера версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...