Ruby - 読みをポケベル入力数字に変換するPokebell gem - Qiitaを作った際の記録です。
Jewelerで作ったGemをGithubとRubygemsに登録 - 別館 子子子子子子(ねこのここねこ)にアップした記事の要約です。
アカウントは予め github には登録済みで、既に pokebell フォルダに、符号化できる状態の pokebell.rb を作成してある状況から開始しました。
#Jeweler について
Jeweler とは、RubyGems 作成支援のツールであり RubyGems の作成を簡単にしてくれます。 下記のような機能があります。
- パッケージのひな形の作成
- github へのソースの登録
- RubyGems への公開
- 公開したパッケージの更新
Rubyist Magazine - Jeweler で作る Rails 用 RubyGems パッケージとそのテストについて
Github への登録をしてくれるのがありがたいです。
#Jeweler で gem 作成開始
$ jeweler --rspec --create-repo pokebell
create .gitignore
create Rakefile
create Gemfile
create LICENSE.txt
create README.rdoc
create .document
create lib
create lib/pokebell.rb
create spec
create spec/spec_helper.rb
create spec/pokebell_spec.rb
create .rspec
Jeweler has prepared your gem in ./pokebell
Please provide your Github password to create the Github repository
Password:
ここで Github のパスワードを入力します。
Faraday::Builder is now Faraday::RackBuilder.
Jeweler has pushed your repo to git@github.com:riocampos/pokebell.git
当然ですが lib/pokebell.rb の中身は空っぽです。ので、バックアップを取っていた内容を流し込みます。そして git commit
。
なお、github情報を ~/.gitconfig に未登録だったり同名フォルダが存在したりすると失敗します。それらの対応についてはJewelerで作ったGemをGithubとRubygemsに登録 - 別館 子子子子子子(ねこのここねこ)を確認してください。
##バージョン設定
ひとまずバージョンを0.0.1にしておきたい。
$ rake version:write
Updated version: 0.0.0
$ rake version:bump:patch
Current version: 0.0.0
Updated version: 0.0.1
として VERSION ファイルの作成及び記載バージョンを0.0.1に変更しました。
0.0.1
git commit も為されていました。
##gemspec ファイル作成
gem.summary = %Q{TODO: one-line summary of your gem}
gem.description = %Q{TODO: longer description of your gem}
の部分を変更しておく必要があるようです。
gem.summary = %Q{Japanese "Pokebell" pager message encoder}
gem.description = %Q{Japanese charactor displayed by hiragana, alphabet, or number encode to 2-digit in used "Pokebell" pager.}
に変更します。
続いて rake gemspec
を実行します。
$ rake gemspec
Generated: pokebell.gemspec
pokebell.gemspec is valid.
pokebell.gemspec ファイルには
# Generated by jeweler
# DO NOT EDIT THIS FILE DIRECTLY
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
とありますので、 gemspec ファイルを訂正する場合には Rakefile を直しましょう。ちなみに Rakefile の gem.summary などが TODO のままであってもそのまま gemspec ファイルが生成されます。先に直しておきましょう。
##rubygems を生成
なお、gemspec ファイルを作成しなくてもrake build
は実行可能です。
$ rake build
Successfully built RubyGem
Name: pokebell
Version: 0.0.1
File: pokebell-0.0.1.gem
##rubygems.org への登録
Edit Profile | RubyGems.org | your community gem host
の最下段の curl コマンドを実行し rubygems.org のパスワードを入力すると、 ~/.gem/credentials
に API key を設定できます。
$ curl -u riocampos https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials
Enter host password for user 'riocampos':
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 56 0 56 0 0 23 0 --:--:-- 0:00:02 --:--:-- 23
##リリース☆
rake release
一発で Github へのアップロード(git push origin master
)、 gemspec ファイル作成(rake gemspec
)、 rubygems 生成(rake build
)、 rubygems.org への登録(gem push ./pkg/pokebell-0.0.1.gem
)を行ってくれます。
$ rake release
Committing pokebell.gemspec
Pushing master to origin
Generated: pokebell.gemspec
pokebell.gemspec is valid.
Successfully built RubyGem
Name: pokebell
Version: 0.0.1
File: pokebell-0.0.1.gem
Executing "gem push ./pkg/pokebell-0.0.1.gem":
gem push ./pkg/pokebell-0.0.1.gem
Pushing gem to https://rubygems.org...
Successfully registered gem: pokebell (0.0.1)
#参考