メソッドにcallbackを追加するgemをつくってみた
概要
以前からgemを作ってみたいと思いつつ作れてなかったので作成してみました。
methodにcallbackを追加するembed_callbacksというgemを作成しました。
探すと似たようなgemが出てくるので車輪の再発明的なものになりますが作成してみました.
gemの機能
まだそこまで機能はないのですが以下のようになります。
- メソッドの前に処理を追加
- メソッドの後に処理を追加
- メソッドの前後に処理を追加
上記を簡単に呼び出せるようにしています。
今後更に機能は追加する予定です。詳細はGitHubを確認していただければと思います。
gemの作り方
参考記事
https://qiita.com/coe401_/items/8e90373a76f590ef0abe
しおいさんがQiitaで取り上げてくれた記事を参考にしました。
丁寧に説明してくれていてとてもいい記事ですね。
gemの命名
https://guides.rubygems.org/name-your-gem/
こちらの記事でどのような命名するとよいか記載されている内容を参考にしました。
gem searchコマンドもしくは https://rubygems.org/ から作成するgem名を検索しておき
同じ名前にならないようにしておくのがいいかと思います。
はじめに考えていた名前はすでに登録されていたので別名を考えていた今回の命名になりました。
命名は先行優位ですね。
困ったこと
RubyGemsへの登録
RubyGemsにユーザ登録時のメールアドレスを間違ってしまい、
確認メールをチェックできなくなってしまいました。
ログインはできるのですが確認メールをチェックしてください。というような文言で確認できない状況です。
メールアドレスは一度目の登録からは変更できないようなので、
とりあえずはRubyGemsには登録しないでしばらくGitHubだけで公開しておきます。
同様の問題で困っている人は少なそうですが、解決方法がわかる方いらっしゃいましたら情報いただければと思います。
どうしようもなくなったらhotoolong2みたいなのにして登録しようと思います。
gemの作成
参考記事にはbundle gem hogehoge などすると対話式にオプションを設定できるようなものもあったのですが、私の環境ではそうならなかったので引数などを設定しました。
$ bundle gem embed_callbacks --test=rspec --coc --mit Creating gem 'embed_callbacks'... MIT License enabled in config Code of conduct enabled in config create embed_callbacks/Gemfile create embed_callbacks/lib/embed_callbacks.rb create embed_callbacks/lib/embed_callbacks/version.rb create embed_callbacks/embed_callbacks.gemspec create embed_callbacks/Rakefile create embed_callbacks/README.md create embed_callbacks/bin/console create embed_callbacks/bin/setup create embed_callbacks/.gitignore create embed_callbacks/.travis.yml create embed_callbacks/.rspec create embed_callbacks/spec/spec_helper.rb create embed_callbacks/spec/embed_callbacks_spec.rb create embed_callbacks/LICENSE.txt create embed_callbacks/CODE_OF_CONDUCT.md Initializing git repo in /Users/hotoolong/repositories/embed_callbacks Gem 'embed_callbacks' was successfully created. For more information on making a RubyGem visit https://bundler.io/guides/creating_gem.html
まとめ
比較的簡単に作成まではいけそうなので、他にもgemにしていなかったものや放置してるものを徐々にupしていければいいかなと思っています。 なにか助言やPRなど私の困ったことへの解決の糸口になるものなどアドバイスいただければとてもありがたいです。
参考にした記事
はじめての自作gem 「Hello, Tama!」を出力してみる - Qiita
RubyGemはめっちゃ簡単に作れる! | 酒と涙とRubyとRailsと
https://qiita.com/yu-croco/items/a93693d02ca39ac38f78
RubyGemsの作り方 - Qiita
Bundler: How to create a Ruby gem with Bundler
Name your gem - RubyGems Guides
GitHubリポジトリのREADMEの良さそうな書き方・テンプレート - karaage. [からあげ]
個人gemのCIをほぼ全部Travis CIからGitHub Actionsに移行した - くりにっき
GitHub Actions がローンチされたのでマイグレートしてる - HsbtDiary(2019-08-11)
GitHub - actions/setup-ruby: Set up your GitHub Actions workflow with a specific version of Ruby
今の時代だからこそオススメする車輪の再発明|erukiti