2009-03-26 10 views
12

私はルビーの宝石になると期待しています。誰でも簡単なライブラリやプラグインを宝石に変換するチュートリアルへのリンクがありますか?また、特に、Rubyが宝石を見つけるために必要なプロセスは何ですか?それは、宝石のパスにファイルを置くこと(または私の構成が台無しになっている?)よりも何かのようです。"require"のインクルードパスにルビーの宝石をどうやって入れますか

おかげ

答えて

26

これは手動で行うのは難しいことではありません。たとえば、宝飾品として配布するライブラリwhatever.rbがあるとします。

  1. ディレクトリlibを作成し、lib/whatever.rbwhatever.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 = '[email protected]' 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 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 を使用してローカルでテストすることができます、その後、スクリプトで、あなたのライブラリーを使用して、単純に先頭に次の操作を行いますgemspecファイルにどのようなさまざまな設定の詳細について

GemSpec Referenceを確認してください。

個人的には、私も実行可能なスクリプトをパッケージ化するために多くの場合、rubygemsを使用しています。それは非常に便利です。

+0

誰かがこの素晴らしい答え、コメントなしで詳細な答えをマークしましたか? –

+0

すばらしく完了しました。素晴らしい答え。 – KeatsKelleher

+0

驚くべきことに、この回答は、デフォルトでバンドル業者が宝石を作成した後、バージョンコントロールに追加されたファイルだけが「spec.files」に追加されることを認識しました。つまり、 's.files = \' git ls-files \ '.split($ \)'はgitに追加していないファイルを無視します。 – erran

2

newgemを使用しています博士ニック、からoldish one hereがあります。それはおそらく今少し古いです。

もう少し最近、我々は上記に基づいて構築されているように見える宝石を得る。のHere's a post about that

限り、あなたがgem install <some-useful-stuff>を実行してきましたし、あなたが必要なコードがrequire 'rubygems'を実行したいずれか、またはあなたがRUBYOPT = -rubygems設定したらパスが、行くように(Windowsのみ?私はよく分からないということです)その後、後続の実行requireは適切なライブラリのgemsディレクトリも検索します。

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

2

ルビーの宝石を製作する場合は、newgemまたはjewelerをご覧ください。

+1

また、新しい宝石を作成するためにbundlerを使用する際には、レールスクラストがあります。 (http://railscasts.com/episodes/245-new-gem-with-bundler) – Intentss

関連する問題