じゃんけんをする自作gemを作ってみた話
はじめに
今回は初めてrubygemsに自作gemを公開するまでの流れを記述していきます。
参照ページ
テンプレを作成
bundle
が入っている前提で話を進めます。
bundle gem Janken -t
とターミナルに入力するとgemのテンプレができます。
ライセンスについて聞かれるので二つともy
を入力しました。
※ライセンスの詳細については参照ページを見てください
gemspecを設定
lib = File.expand_path("lib", __dir__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require "janken/version" Gem::Specification.new do |spec| spec.name = "janken" spec.version = Janken::VERSION spec.authors = ["KKZoo"] spec.email = ["your@email.address"] spec.summary = %q{janken program.} spec.description = %q{can play janken.} spec.homepage = "https://github.com/KKZoo/Janken" spec.license = "MIT" # Specify which files should be added to the gem when it is released. # The `git ls-files -z` loads the files in the RubyGem that have been added into git. spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } end spec.bindir = "exe" spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] spec.add_development_dependency "bundler", "~> 2.0" spec.add_development_dependency "rake", "~> 10.0" spec.add_development_dependency "rspec", "~> 3.0" end
これを設定しないとbuild
時にerror
が出る。
処理を書く
lib/janken.rb
に処理を書いていきます。
細かいことはGitHubに処理を書いてあるのでそちらを見てください。
gemの動作をローカルで確認
cd ~/Desktop/janken
bundle install
bundle exec rake install
irb
require "janken" Janken.judge("rock","paper","A","B")
gemのアカウントを作る
GitHubのrepositoryにpushした後にrubygemsでアカウントを作りedit profile
ページにて下記のコマンドがあるからそれをコピペしてパスワードを入力
$ curl -u アカウント名 https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; ~/.gem/credentials
gemを公開する
rake build
rake release
とすると自作gemがremoteで公開されます。
gemをinstallして動作確認
gem install janken
irb
require "janken" OnePlayer.janken("rock")
元々のソースがCPUが出したじゃんけんの手を外部のtxtに保存する形式だったのだがローカルだと正しく起動したけど、公開後だとパーミテーション系のエラーなのか上手く動作しなかったので、急遽デバッグした。
終わりに
大変だったけど、自作gemが公開されたわくわく感にもにた達成感がたまらなかった。
貧相なgemだけどみなさん使ってみてくれるとありがたいです。