バリケンのRuby日記 RSSフィード

2006-06-28

[] QuickMLソースコードを読む(18) quickml/sweeper.rbの続き  QuickMLのソースコードを読む(18) quickml/sweeper.rbの続き - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  QuickMLのソースコードを読む(18) quickml/sweeper.rbの続き - バリケンのRuby日記  QuickMLのソースコードを読む(18) quickml/sweeper.rbの続き - バリケンのRuby日記 のブックマークコメント

昨日の日記の続きだよ。

    def sweep_ml (ml)
      if ml.inactive?
        @logger.log "[#{ml.name}]: Inactive"
        ml.close
      elsif ml.need_alert?
        ml.report_ml_close_soon
      end
    end

これはQuickML::Sweeperクラスプライベートメソッド、sweep_mlメソッドだね。

まずml変数が貼り付けてあるオブジェクトに対して、QuickML::QuickML#inactive?メソッド(これはquickml/core.rbで定義されているよ)で、アクティブではないメーリングリストかどうか(ずっと投稿がないか)をチェックしているよ。

次にQuickML::Logger#logメソッド(これはquickml/logger.rbで定義されているよ)で、ログファイルにそのメーリングリストアクティブではないことを記録しているよ。

そしてQuickML::QuickML#closeメソッド(これはquickml/core.rbで定義されているよ)で、メーリングリスト削除をするよ。

elsif以下は、メーリングリストアクティブな場合だね。今度はQuickML::QuickML#need_alert?メソッド(これはquickml/core.rbで定義されているよ)で、アラートを送信する必要があるかをチェックするよ。QuickMLでは一定期間投稿がないとメーリングリストが自動的に削除される機能がある(削除される日の直前に「投稿がないともうすぐ消去されてしまいます」というアラートを送る)んだよ。

アラートを送る必要があるなら、QuickML::QuickML#report_ml_close_soonメソッド(これはquickml/core.rbで定義されているよ)で、メーリングリストメンバー全員にアラートメールを送信するよ。

今日はここまで。

トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20060628