独自の Rubygem を作成して公開するにはどのような手順が必要ですか?

StackOverflow https://stackoverflow.com/questions/120191

  •  02-07-2019
  •  | 
  •  

質問

これで Ruby ライブラリが作成されました。

Rubygem を作成して公開するにはどうすればよいですか?また、rubygem の作成と公開に関してよくある落とし穴や落とし穴にはどのようなものがあるのでしょうか?

役に立ちましたか?

解決

独自の gem を構築するのに役立つツールがいくつかあります。 そして 新しい宝石 最もよく知られており、多くの優れた特性を持っています。ただし、hoe はそれ自体を gem に依存関係として追加し、newgem は非常に大きなツールになり、gem を迅速に作成してデプロイしたい場合には扱いにくいと感じます。

私のお気に入りのツールは ミスター・ボーンズ ティム・ピーズ著。軽量で機能が豊富で、プロジェクトに依存関係を追加しません。これを使用してプロジェクトを作成するには、次のコマンドを実行します。 bones <my_project_name> コマンドラインで実行すると、スケルトンが構築され、 lib コードのディレクトリ、 bin ツールのディレクトリとテスト ディレクトリ。構成は次のとおりです。 Rakefile, 、明確かつ簡潔です。数か月前に行ったプロジェクトの構成は次のとおりです。

load 'tasks/setup.rb'

ensure_in_path 'lib'
require 'friend-feed'

task :default => 'test'

PROJ.name = 'friend-feed'
PROJ.authors = 'Clinton R. Nixon'
PROJ.email = 'crnixon@gmail.com'
PROJ.url = 'friend-feed.rubyforge.org'
PROJ.rubyforge_name = 'friend-feed'
PROJ.dependencies = ['json']
PROJ.version = FriendFeed::VERSION
PROJ.exclude = %w(.git pkg)

Mr Bones には、あなたが期待する標準的な機能セットが備わっています。これを使用して、ライブラリの gem と tarfile をパッケージ化したり、RubyForge でリリースしてそこにドキュメントをデプロイしたりできます。ただし、そのキラー機能は、そのスケルトンをホーム ディレクトリにフリーズする機能です。走るとき bones --freeze, という名前のディレクトリ .mrbones ホームディレクトリにコピーされます。そこにあるファイルを編集して、自分の作業方法に合わせて機能する gem のスケルトンを作成できます。それ以降、ボーンを実行して新しい gem を作成するときに、個人的な gem スケルトンが使用されます。Mr Bones の凍結を解除するには、次のコマンドを実行します。 bones --unfreeze スケルトンがバックアップされ、デフォルトのスケルトンが再び使用されます。

(編集注記:数か月前にこれについてブログ投稿を書きましたが、この投稿の大部分はそこからコピーしたものです。)

他のヒント

お勧めします ギットハブ 特にオープンソース プロジェクトの出発点として。

そしてGoogle検索も試してみてください...私にとって初めての検索結果...

また、Gem 作成プロセスを自動化できる Hoe gem をチェックアウトすることもできます。

見る: http://nubyonrails.com/articles/tutorial-publishing-rubygems-with-hoe

実際、私はまさにこれに関するチュートリアルを書き、学びながら書きました。ライブラリというよりも、私が書いたゲームに重点を置いています。また、Gem を自分で構築するのではなく rake 経由で構築することを前提としています。

  • パート1 gemの作成方法について。
  • パート2 gem によってインストールされたバイナリを実行し、リソースにアクセスする方法について説明します。

hoe は、rubygems 1.2 のようにそれ自体を依存関係として追加しなくなりました。その rake タスクは、rubygem を Rubyforge にデプロイすることに焦点を当てています。Github から gem を提供したいだけなら、役立つ新しい hoe 風の rake タスク ツールがあると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top