hene

hene.dev

gem を作ってみた

gem を作ってみた

gem 作成

gem_name には適当に作りたい gem 名を入力します。

-t をつけると、テストも作成します。

gem 名に - を含めると、ディレクトリが階層化されます。

> bundle gem gem_name -t

gem を動かす

./bin/console を実行すると、irb で、gem を動かすことができます。

gem_name.gemspec 変更をしないと、動かないので次に進みます。

$ ./bin/console
Traceback (most recent call last):
        30: from ./bin/console:3:in `<main>'
        29: from /Users/username/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        ...
         1: from /Users/username/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/rubygems_integration.rb:58:in `validate'
/Users/username/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/rubygems_integration.rb:63:in `rescue in validate': The gemspec at /Users/username/programming/gem_name/gem_name.gemspec is not valid. Please fix this gemspec. (Gem::InvalidSpecificationException)
The validation error was 'metadata['source_code_uri'] has invalid link: "TODO: Put your gem's public repo URL here."'

gem_name.gemspec の書き換え

gem_name.gemspecTODO と書かれているところを書き換えていきます。

spec.metadata['allowed_push_host'] は、下の記事を参考に example をコピペしました

Ruby のバージョンを指定します

2.6.5 にします。

> rbenv local 2.6.5

.ruby-version ファイルが作成されます。

2.6.5

bundle install

$ ./bin/console
Could not find gem 'rake (~> 10.0)' in any of the gem sources listed in your Gemfile.
Run `bundle install` to install missing gems.

bundle install しましょう。

> bundle install
...

無事、irb が起動しました。

$ ./bin/console
irb(main):001:0>

以上です。

参考

関連記事