こんにちは、まどぎわです(・∀・)
今回はspp
というログ出力を支援するGemを公開したので、それについて書こうと思います🙌
(ちなみに初めてRubyGemsにコードを公開してみました...!)
ちなみに今回リリースしたGemは下記です。
spp | RubyGems.org | your community gem host
使い方はこんな感じ
Spp::spp('hoge') => ========== START ========== "hoge" ========== E N D ==========
使う前には、Gemfileに下記を追記するか、gem install spp
を実行するだけです👀
gem 'spp'
ログを見ながらデバッグするときとか、こんな感じに便利かなぁと思います(..)
下記のような感じでやると取得したユーザー一覧の取得処理をログ上で目立たせることができます🙌
def index @quizzes = if params[:search_text] Quiz.includes(:choices).search(params[:search_text]) else Quiz.includes(:choices) end Spp::spp(@quizzes.pluck(:title).uniq) end
こんな感じで目立つ(・∀・)
========== START ========== ["テスト", "タイトル", "HUNTERXHUNTERクイズ", "プロレスクイズ", "テストあああ", "私についてのQuiz"] ========== E N D ==========
ちなみに下記のような感じで、修飾をカスタマイズすることもできますφ(..)
def index @quizzes = if params[:search_text] Quiz.includes(:choices).search(params[:search_text]) else Quiz.includes(:choices) end Spp::spp(@quizzes.pluck(:title).uniq, '開始', '終了', '⚡' * 5) end
こんな感じ(・∀・)
⚡⚡⚡⚡⚡ 開始 ⚡⚡⚡⚡⚡ ["テスト", "タイトル", "HUNTERXHUNTERクイズ", "プロレスクイズ", "テストあああ", "私についてのQuiz"] ⚡⚡⚡⚡⚡ 終了 ⚡⚡⚡⚡⚡
内部的にはシンプルで、下記コードが実行されているだけなのですが、毎回書くのがめんどくさかったのでGemにしてみました🙌
puts "========== START ==========" pp 'hoge' puts "========== E N D =========="
ちなみにこんな感じで書くと、
def index Spp::spp_bench do @quizzes = if params[:search_text] Quiz.includes(:choices).search(params[:search_text]) else Quiz.includes(:choices) end @quizzes.pluck(:title).uniq end end
ベンチマークも取れます💪
========== START(2018-08-09 22:12:16 +0900) ========== (5.1ms) SELECT "quizzes"."title" FROM "quizzes" LEFT OUTER JOIN "choices" ON "choices"."quiz_id" = "quizzes"."id" ↳ app/controllers/quizzes_controller.rb:12 ["テスト", "タイトル", "HUNTERXHUNTERクイズ", "プロレスクイズ", "テストあああ", "私についてのQuiz"] ========== E N D(2018-08-09 22:12:16 +0900) ==========
同じように修飾もできます(・∀・)
⚡⚡⚡ START(2018-08-09 22:15:06 +0900) ⚡⚡⚡ (1.3ms) SELECT "quizzes"."title" FROM "quizzes" LEFT OUTER JOIN "choices" ON "choices"."quiz_id" = "quizzes"."id" ↳ app/controllers/quizzes_controller.rb:12 ["テスト", "タイトル", "HUNTERXHUNTERクイズ", "プロレスクイズ", "テストあああ", "私についてのQuiz"] ⚡⚡⚡ E N D(2018-08-09 22:15:06 +0900) ⚡⚡⚡
みなさんも良かったら使ってみてくださいm( )m
↓ソースコードや詳しい使い方はこちら github.com
Gemの作り方
Gemの作り方は下記記事を参考にさせて頂きましたm( )m
意外と簡単に作れるので、みなさんも作ってみては?🙌
ハマったところ
一応gem公開時にハマった箇所もメモしておきますφ(..)メモメモ
rake release時の権限Error
bundle exec rake release
実行時に下記のようなErrorが出てハマりました(T_T)
You do not have permission to push to this gem. Ask...
原因は、単純にgemの名前が重複していて、既存のgemにpushしようとして権限Errorになってました。。。
重複しないようにコードの内のgemの名前を指定している箇所を置換して解決しました。