先日Rubyを触っていたのですが、gemの手軽さが凄まじくて感動しておりました。
そして、GrowthPushのRubyライブラリをgemにホスティングしようと思いまして、RubyGemsについて調べました。
Rubyは「たのしいRuby」を半分くらいまで読んで挫折し、全く詳しくないので、以下の内容は怪しいかもしれません。「未経験で初めてgemを作ってみたので晒してみる」を参考にしてやっていましたが、途中行ったり来たりしていたので、どこか工程が欠けているかもしれません。
ライブラリをlibディレクトリ以下に書く
gemを眺めていると、ライブラリの本体はlibディレクトリ以下に置かれるようです。libの下にgrowthpush.rbを作成し、次のように空のモジュールを書きました。
module GrowthPush
end
gemspecを書く
次にgemの設定ファイルと言えると思われるgemspecというファイルを書きます。名前は、growthpush.gemspecにします。ここにはバージョン情報や著作者情報などを書くようです。
Gem::Specification.new do |s|
s.name = 'growthpush'
s.version = '0.0.0'
s.summary = 'GrowthPush library'
s.files = ['lib/growthpush.rb']
s.authors = ['katty0324']
s.email = 'support@growthpush.com'
s.homepage = 'http://github.com/SIROK/growthpush-ruby'
s.rubyforge_project = 'growthpush'
s.description = 'GrowthPush library for Ruby'
end
ビルドする
これで設定ファイルとソースコードの実体が完成しまして、ここから実際にホスティングするための作業に入ります。まずは、これらのソースコードをまとめてgemという一つのファイルにします。
$ gem build growthpush.gemspec
Successfully built RubyGem
Name: growthpush
Version: 0.0.0
File: growthpush-0.0.0.gem
このgemというファイルの実体は、tarらしいので、設定をもとにソースコードをパッケージしているという感じだと思います。
[Ruby][Gem] gemパッケージの正体はtarだった
ホスティングする
こうしてできたパッケージをgem pushコマンドで、送信するとホスティングすることができます。
$ gem push growthpush-0.0.0.gem
Pushing gem to https://rubygems.org...
Successfully registered gem: growthpush (0.0.0)
growthpush | RubyGems.org | your community gem host
こんな簡単に入れられてよいのでしょうか。少し不安です。
このままだとRubyGemsのスペースを汚しているだけなので、まもなくここに空ではないGrowthPushライブラリを入れます。