Open3

gemを作成してみよう!

O.SO.S

前提知識: Bundlerとは

BundlerはRubyの依存関係を管理するためのツールです。
Rubyプロジェクトで使用されるgemのバージョンを正確に追跡し、プロジェクトごとに異なるgemセットを維持することができます。
これにより、異なるプロジェクト間でのgemの競合を避けることができます。

参考

https://zenn.dev/d0ne1s/articles/ded05b96bfbe0d
https://qiita.com/9sako6/items/72994b8b1c00af4e61fe

O.SO.S

手順

1. gemの雛形を生成

$ bundle gem {gemの名前}

2. GitHubにリポジトリを作成

$ git remote add origin {https又はsshのurl}
$ git branch -M main
$ git commit -m "first commit"
$ git push -u origin main

3. 作成したgemの中身を書く。

lib/直下にある.rbファイルを編集する。

require_relative "hogehuga_mock/version"

+ # HogehugaMock module is for testing purposes.
module HogehugaMock
  class Error < StandardError; end

+  # Your code goes here...
+  def self.hello
+    "Hello World!!"
+  end
end

4. gem buildする

gemspecを修正した上で、以下のコマンドを実行します。
ここで作成される.gemファイルはgit管理下に置かないようにする。(差分に含めるとgemspecに関するCIに落ちる。)

5. gem pushする

以下のようなコマンド実行例のように、gem pushすると指定したversionのgemがRubyGemsに公開される。

$ gem push hogehuga_mock-0.1.0.gem
O.SO.S

gemはなぜbundle installされると、使えるようになるのか?