M5GF

まったり開発ブログ

=> Wed, 26 Jun 2019 23:51:24 JST +09:00

f:id:ata-ata:20190626233931j:plain
前々から欲しかったmagic trackpadを導入。 以前職場の方に借りていた時期があったのだが、その期間で完全に身体がmagic trackpad以外を受け付けなくなってしまった。大きな感動はないが、そこには安心が存在している。いい…

ーーーーーーーー

今日はdeviseやwardenの内部実装を読んだりしていた。

devise/sign_in_out.rb at master · plataformatec/devise · GitHub

     def expire_data_after_sign_in!
        # session.keys will return an empty array if the session is not yet loaded.
        # This is a bug in both Rack and Rails.
        # A call to #empty? forces the session to be loaded.
        session.empty?
        session.keys.grep(/^devise\./).each { |k| session.delete(k) }
      end

      alias :expire_data_after_sign_out! :expire_data_after_sign_in!

この expire_data_after_sign_in! メソッドはその名の通りログイン認証後にdeviseのセッションを破棄するメソッドなのだけど、エイリアスexpire_data_after_sign_out! メソッドも定義している。メソッドの内容は同じでログイン/ログアウト時にそれぞれ適した命名のメソッドを呼べるので、ほーんこんな時にalias使うんかーと唸るなどした。

内部実装を読んでやりたかったことはdeviseのscopeを新しく追加し、 user 以外の別のモデルでログインするルーティングを追加したかったのだけど、そこはうまくいっていない。明日の自分に期待。