こんにちは、まどぎわです(・∀・)
今回はspp
というログ出力を支援するGemを公開したので、それについて書こうと思います🙌
(ちなみに初めてRubyGemsにコードを公開してみました...!)
ちなみに今回リリースしたGemは下記です。
spp | RubyGems.org | your community gem host
github.com
使い方はこんな感じ
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
意外と簡単に作れるので、みなさんも作ってみては?🙌
morizyun.github.io
qiita.com
masarakki.github.io
ハマったところ
一応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の名前を指定している箇所を置換して解決しました。