LoginSignup
3
4

More than 5 years have passed since last update.

初めてGemsでRubyのライブラリを公開する

Last updated at Posted at 2017-05-07

GemsでRubyのライブラリを公開する方法

Gemsで公開できるライブラリを作成する

必要なライブラリをインストールする

$ sudo apt-get install rbenv bundler rake
$ sudo gem install rspec

gemspecを作る

gemするために必要なプロジェクトを作成します。

bundle gem "gem name" -t

"gem name"のフォルダができるので、このフォルダの中にプロジェクトを作ります。
lib/に"gem name".rbがありますので、そのファイルに実際に動かすライブラリを入れます。

"gem name".gemspecを編集する

"TODO: "が入っているとエラーになるので、TODOを消して正しい記述をしてください。
spec.summary = %q{"TODO:XXXX"}
spec.description = %q{"TODO:XXXX"}
spec.homepage = ""TODO:XXXX""

gemの依存関係があれば記述しておきます。

gemspec

この一行はrubygem.orgから公開する場合はコメントアウトしてください。

    #spec.metadata['allowed_push_host'] = "TODO: Set to   spec.add_development_dependency "bundler", "~> 1.11"
  spec.add_development_dependency "rake", "~> 10.0"
  spec.add_development_dependency "rspec", "~> 3.0"
 # 追加する行
  spec.add_dependency "google_drive", "~> 2.1"
  spec.add_dependency "termcolor", "~> 1.2"

Gemfile

このようにgemspecの下に依存関係のあるgemを記述します。

source 'https://rubygems.org'

 # Specify your gem's dependencies in easy-google-drive.gemspec
gemspec
gem "google_drive","2.1.3"
gem "termcolor","1.2.2"

githubにpushします。

gemのビルドを行います。

$ rake build

動作確認

作成したgemをインストールして動作確認をします。

$ sudo gem install pkg/"gem name"-"version".gem

公開しないのであれば、ここまでで作業は終了です。

Gemに公開します。

rubygem.orgにユーザ登録する

  1. https://rubygems.orgにアクセスしてユーザ登録をします。
  2. 登録をしたら"Edit Profile"をクリックします。Email Meの下にある小さいところです。 2017-05-06-183752_1440x900_scrot.png
  3. profileの一番下にcurlの情報があるので、それをconsole画面に貼り付けて認証を行います。
$ curl -u NaotakaSaito https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials
Enter host password for user 'NaotakaSaito':
 ### パスワードを入力してください###
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    56    0    56    0     0     76      0 --:--:-- --:--:-- --:--:--    76

gemを公開する

(2017年5月17日 公開するためのコマンドを変更しました)

$ rake release

(おまけ)
新たな端末からリリースを行うとき、rake releaseでエラーが発生します。
その時は、まずgem pushをしてください。
メールとパスワードを入力するとエラーで終了しますが、問題ありません。

$ gem push
   Don't have an account yet? Create one at https://rubygems.org/sign_up
    Email: 
    Password:

Singed in.
Error: While executing gem ... (Gem:: CommandLineError)
    Please specify a gem name on the command line (e.g. gem build GEMNAME)

Singed in.がでたらサーバーにログインできたということなので、最後に

$ rake release

をしたら完了です。

sugo gem install "gem name"
でインストールして正しいバージョンがインストールできるか確認をしましょう。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4