12

私はルビーの宝石に期待するものを作成しています。単純なライブラリまたはプラグインをgemに変換するためのチュートリアルへの良いリンクを持っている人はいますか?また、特に、Rubyがgemを見つけるためにrequireを許可するために使用するプロセスは何ですか?これは、ファイルをgemパスに配置する以上のことのようです(または私の構成が台無しになっていますか?)。

ありがとう

4

3 に答える 3

26

実際、これを手動で行うのはそれほど難しくありません。whatever.rbgem として配布したいラ​​イブラリがあるとします。

  1. ディレクトリを作成し、libのコピーを置きます。whatever.rblib/whatever.rb
  2. ファイルを作成しwhatever.gemspec、そこに次を入れて、適切な値を入力します。
    
     Gem::Specification.new do |spec|
       spec.name = 'the-name-of-your-gem'
       spec.version ='0.0.1'
    # this is important - it specifies which files to include in the gem. spec.files = ["lib/whatever.rb"]
    # 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 = 'http://www.yourpage.com'
    # you did document with RDoc, right? spec.has_rdoc = true
    # if you have a ruby forge project spec.rubyforge_project = 'your-project-name-on-rubyforge'
    # 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 をビルドするには、次のgem buildコマンドを使用します。
    % gemビルドwhatever.gemspec
    RubyGem のビルドに成功
    名前: あなたの宝石の名前
    バージョン: 0.0.1
    ファイル: the-name-of-your-gem-0.0.1.gem
    %
    
  4. To use your library in a script then を使用してローカルでテストでき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 リファレンスを確認してください。

個人的には、実行可能なスクリプトのパッケージ化にも ruby​​gems をよく使用しますが、非常に便利だと思います。

于 2009-03-26T13:01:15.837 に答える
2

ここには、 newgemを使用した Dr Nic からの古いものがあります。それはおそらく今では少し時代遅れです。

もう少し最近では、上記に基づいているように見える gemify が入手できます。これについての投稿はこちら

パスに関する限り、実行gem install <some-useful-stuff>して必要なコードが実行されるrequire 'rubygems'か、 RUBYOPT=-rubygems を設定すると (それは Windows のみですか?よくわかりません)、その後の実行でrequireも gems ディレクトリが検索されます。適切なライブラリ。

バージョン番号を指定できるようにする、より明示的な (ただし非推奨の)require_gemコマンドもあります。gem

于 2009-03-26T11:54:03.627 に答える
2

ruby gem を構築するには、 newgemjewelerを見たいと思うかもしれません。

于 2009-03-26T11:56:04.573 に答える