LoginSignup
0
0

More than 5 years have passed since last update.

RubyGems 作成方法(超初心者)

Last updated at Posted at 2018-08-04

RubyGemsをローカルに作成(example: ruby_learner)

Gemの入れ物を用意する

  • $ bundle gem ruby_learner -t

 create  ruby_learner/Gemfile
 create  ruby_learner/Rakefile
 create  ruby_learner/LICENSE.txt
 create  ruby_learner/README.md
 create  ruby_learner/.gitignore
 create  ruby_learner/ruby_learner.gemspec
 create  ruby_learner/lib/ruby_learner.rb
 create  ruby_learner/lib/ruby_learner/version.rb
 create  ruby_learner/.rspec
 create  ruby_learner/spec/spec_helper.rb
 create  ruby_learner/spec/ruby_learner_spec.rb
 create  ruby_learner/.travis.yml

Gemの基本設定(gemspecファイルについて)

  • TODOの部分は極力入力する。(ただし、以下の部分はreleaseの時のエラーの原因になるのでコメントアウトしましょう。)
ruby_learner.gemspec
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'                                                                           
# to allow pushing to a single host or delete this section to allow pushing to any host.                                                                                 
if spec.respond_to?(:metadata)                                                    
  spec.metadata["allowed_push_host"] = "TODO:Set to 'http://mygemserver.com'"    
else
  raise "RubyGems 2.0 or newer is required to protect against "                 
    "public gem pushes."                                                          
end
  • そのgemの開発だけに必要なものはadd_development_dependency で指定する。
ruby_learner.gemspec
spec.add_development_dependency "bundler", "~> 1.16"
  • gemの実行に必要なgemはadd_dependencyで指定する。
ruby_learner.gemspec
spec.add_dependency "minitest", "~> 5.10.3"

Gemの基本設定(実行ファイルについて)

  • lib内に実行領域が存在する。Gemと同じ名前のファイルがあるのでそれが実行されると考える。

ローカルでのテスト実行の例

  • gemのディレクトリ上でrakeコマンドを実行する。
$ rake build
$ rake install:local

リリースまでの流れ

GitHubでのアカウント作成とGemのディレクトリを新規リポジトリに登録する

  • 省略

RubyGemsでの操作

  • アカウント作成はこちら > https://rubygems.org/sign_up
  • 自分のアカウントのEdit profileからAPI ACCESSの以下のコマンドを実行する。
curl -u USERNAME https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials
  • APIがきちんとコピーされているか確認する。cat ~/.gem/credentials

リリースコマンド(変更は全てgithub上にpushしておきましょう。)

  • bundle exec rake release
  • 同じversionでのリリースはできないので、versionは更新して追加リリースの場合はrake releaseを実行しましょう。
  • versionの更新は、gemのディレクトリ内のlib/#{gem_name}/version.rbの値を変更しよう。

Versionをあげた際の注意

  • versionをあげるとローカルに保存したgemは全くの別物としてインストールされます。
  • gemを削除したい場合はgem uninstall #{gem_name}で行えます。(最新版と過去版の2つある場合は選択できるようになっています。)
  • ちなみに、gem list #{gem_name}でバージョンの確認を行えます。
0
0
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
0
0