Rubygemsでライブラリを公開したので、手順をまとめてみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。望月です。
先日のエントリで、AWS CLIの設定ファイルに記述されたアクセスキーをRubyから利用する方法について紹介しました。せっかくなので、aws-profile_parserという名前でGem化してRubyGems.orgにて公開することにしました。

初めてgemを公開したので色々と調べながらでしたが、手順は非常に簡単でした。私用の備忘録として手順を残しておきます。

雛形の作成

Gemとして公開するためには、色々なファイルが必要になります。使い方を説明するREADMEファイルや、Gemファイルのメタデータについて記述される.gemspecファイルなどです。これらを手作業で作成するのではなく、コマンドで作成しましょう。作成には様々な方法があるようですが、私は最も一般的(と思われる)bundlerを利用して行いました。手元にbundlerがインストールされてイない方はgem install bundlerでインストールしておいて下さい。

今回は、aws-profile_parserという名前で作成します。

$ bundle gem aws-profile_parser -t
      create  aws-profile_parser/Gemfile
      create  aws-profile_parser/Rakefile
      create  aws-profile_parser/LICENSE.txt
      create  aws-profile_parser/README.md
      create  aws-profile_parser/.gitignore
      create  aws-profile_parser/aws-profile_parser.gemspec
      create  aws-profile_parser/lib/aws/profile_parser.rb
      create  aws-profile_parser/lib/aws/profile_parser/version.rb
      create  aws-profile_parser/.rspec
      create  aws-profile_parser/spec/spec_helper.rb
      create  aws-profile_parser/spec/aws/profile_parser_spec.rb
      create  aws-profile_parser/.travis.yml
Initializing git repo in /Users/mochizukimasao/src/aws-profile_parser

bundle gemを実行すると、カレントディレクトリ以下に新しいディレクトリが作成され、Gem作成に必要なファイル一式が作成され、Gitリポジトリの初期化まで行ってくれます。-tオプションを付記すると、RSpecの雛形も併せて作成してくれます。また、-bオプションを付記すると、実行ファイルも一緒に作成してくれますが今回は利用しませんでした。あとはひたすら実装していきます。

RubyGems.orgへのユーザ登録

実装が終わったら公開のための準備をします。RubyGems.orgでgemを公開する前に、ユーザ登録を済ませておく必要があります。以下のURLからユーザ登録を行いましょう。

Sign up - Rubygems.org

rubygems1

アカウントの作成が完了したら、コマンドラインからgemをリリースする際に必要なAPI Keyを登録しておきます。登録するためのコマンドはWebサイトに記載されているので、そのまま実行しましょう。

$ curl -u <username> https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials

公開

それでは準備が完了したので、公開しましょう。

$ bundle exec rake release
aws-profile_parser 0.0.1 built to pkg/aws-profile_parser-0.0.1.gem.
Tagged v0.0.1.
Pushed git commits and tags.
Pushed aws-profile_parser 0.0.1 to rubygems.org.

rake releaseコマンドは、GithubへのPushとタグ作成、RubyGemsへの登録などを一括で行ってくれます。この作業が完了すれば公開完了です。あとはどの環境からでも、gem install aws-profile_parserを実行すれば今公開したライブラリが利用可能になります。

なお、デフォルトでrake installというタスクが用意されています。このタスクを実行すると、gemのビルドとローカルへのインストールを実行してくれます。gemを公開する前にテストを行いたい場合は利用しましょう。 *1

使い方

基本的には先述のエントリで述べたとおりですが、名前空間がAWS::ProfileParserに変更になっていますので注意して下さい。詳しくはGithubのREADMEを参照して下さい。

まとめ

このブログの長さを見て頂ければわかると思いますが、gemを公開するまでのハードルは非常に低いです。初めてのライブラリ公開でしたが、特に悩むことなく実行することができました。今後も何かしらの便利ツールを作ってgemを公開していきたいと思います。そしてaws-profile_parserへのPull Requestをお待ちしております。

参考資料

脚注

  1. 最初このタスクの存在に気づかず0.0.1と0.0.2をbugfixのために使ってしまいました。。