タグ

2019年1月10日のブックマーク (3件)

  • RubyでメソッドをフックしてBefore/Afterにログを付けたりする - Qiita

    概要 最近読んだRuby: Module.#prepend でメソッド呼び出しをフックという記事の手法をベースにメソッドをフックしてログを仕込んだりする手法を考えてみます。 この記事の手法を利用すると、任意のクラスの任意のメソッドをフックして、前後に処理を挿入することができます。 フックは好きな順番、好きな個数を設定できます。 人によっては、これをAOP(アスペクト指向プログラミング)のような何かだと考えるかもしれません。 実装手順 Objectを拡張して、フックを簡単に追加できるようにする。 フックする処理を記述するモジュール(以降、フックモジュールと呼ぶ)を定義する。 フックモジュールをObjectに登録し、任意のクラスにフック処理を追加できるようにする。 フックしたい対象のクラスに、フックしたいメソッドを指定した記述を追加する。 1. Objectにフック追加メソッドを定義 Obje

    RubyでメソッドをフックしてBefore/Afterにログを付けたりする - Qiita
    tsu-nera
    tsu-nera 2019/01/10
  • メソッド呼び出しのログをとる記事が面白かったのでマクロみたいな感じにしてみた - Qiita

    みたいな感じ. このときadd_traceをうまいこと定義したら,testメソッド内にログ用のコードを埋め込めるはず. 結果 まぁできたけど,けっこう複雑…(検証環境:ruby-2.1.0dev) Qiitaってサイト内記事を引用する方法あるのかな? 毎度毎度,Qiitaの綴りがわからなくなる. コード # このモジュール内はほぼ参考記事通り module Util class Trace @@enable = true @@log = nil class << self def enable= bool @@enable = bool end def log= log @@log = log end def trace *args @@log.debug "#{caller.first} (#{args.join(',')})" if @@enable && @@log end # ad

    メソッド呼び出しのログをとる記事が面白かったのでマクロみたいな感じにしてみた - Qiita
    tsu-nera
    tsu-nera 2019/01/10
    “コード”
  • Sidekiq on Dockerサンプル

    この記事では、SidekiqをDockerコンテナで動作させるためのセットアップ、実行手順を説明します。 はじめに Rubyでジョブ管理を行おうと考えたとき、Resque、Delayed::Job、Sidekiqなどの仕組みがあります。さらに定期的にジョブを実行したいと思い方法を探していると、Sidekiq-Cronやsidekiq-schedulerの解説が多く見られました。このため、Sidekiqを使うことにしました。 なお、Rails 5ではジョブ実装の共通的な仕組みとしてActive Jobが使えますが、Active Jobがsidekiq-schedulerなどで使えるか分からなかったので、今回はSidekiqをそのまま使うことにしました。 今回の手順で作成したプロジェクトは、 u6k/sample-sidekiq にあります。 前提 筆者はRails開発をvim + Docke

    tsu-nera
    tsu-nera 2019/01/10