Latest File Release

mail2weblog (1.3.9)2013-08-09 13:18

トピックス (Topics)

最近の更新 (Recent Changes)

2015-05-21
2015-05-13
2015-03-05
2014-10-03
2013-08-22

開発情報 > プラグイン開発

コマンドプラグイン(version 1.3.8 ~)

1. 概要

コマンドプラグインは、メールをコマンドとみなして処理するプラグインです。

コマンドプラグインは、受け取ったメールによってブログ記事投稿以外に様々なバリエーションの処理を実現できます。


2. 要件

2.1. 必須要件

  1. plugin/command 以下のフォルダにプログラムファイルを格納してください。
  2. プログラムファイルのファイル名は、コマンドプラグイン名 + '.rb' にしてください。
    • コマンド文字列が example だった場合に起動するコマンドプラグインのファイル名は plugin/command/example.rb となります。
  3. コマンドプラグインのクラス名は、必ず先頭が大文字のアルファベットでなければなりません。
  4. コマンドプラグインのクラス名は、必ず _CommandPlugin にしてください。
  5. コマンド文字列が example だった場合にインスタンス化されるクラスは Example_CommandPlugin となります。
    • ルールは単純に先頭のアルファベットを大文字にし、後ろに _CommandPluginを足した文字列をクラス名としたクラスです。
  6. コマンドプラグインクラスは、以下に相当するメソッドを持つ必要があります。
    • 引数無しのコンストラクタ
    • def header_alias
    • def run(request)
  7. 以下の情報を必要とする場合は、必要に応じてアクセサ(attr_writer :xxx, attr_accessor :xxx, def xxx=)を定義してください。アクセサの定義がある場合、run 実行時、対応するインスタンス変数にインスタンスが設定されていることは保証されます。
    • weblog - 利用するウェブログプラグイン
    • plugin_manager - プラグインマネージャー(Mail2WeblogPluginManager)
    • logger - ロガー(logger ライブラリの Logger 相当)
  8. インスタンス変数を利用して構いません。

2.2. 慣習

  • StandardCommand という標準のコマンド実装を提供します。
  • plugin/lib/standard_command.rb を require し、StandardCommand を拡張して実装します。

3. メソッド概要

3.1. run メソッド

アクセサにより受け取った情報と引き数の request を元に、コマンド独自の処理を行ってください。

処理に成功した場合、success が true の、失敗した場合は false の Mail2WeblogResponse を返してください。

ユーザに対して必要な通知がある場合は、Mail2WeblogResponse の notices に情報を設定してください。

ユーザに対して必要な通知を行う責務はコマンドプラグインにはありません。


4. StandardCommand

4.1. 概要

StandardCommand は、コマンドプラグインの標準実装を提供します。

  1. 必要となる全てのアクセサを提供します。
    • attr_writer :weblog - 利用するウェブログプラグイン
    • attr_writer :plugin_manager - プラグインマネージャー
    • attr_writer :logger - ロガー
  2. デフォルトの run メソッドを提供します。run メソッドの処理は以下の通りです。
    • 1. ウェブログプラグイン が設定されている場合は、setup_weblog を実行し、setup_weblog 内でウェブログプラグインに情報(プラグインマネージャー、ロガー)を連携する。
    • 2. run_impl を実行する。

5. 事例

準備中。


6. 変更履歴

  • version 1.0.5 ~
    • 基礎的な仕様を整理し、記述した。
  • version 1.2.3 ~
    • report にて :errors および :warnings を必ず設定する仕様を追加した。
    • 慣習に応答メールの送信方法に関する内容を追加した。
    • その他、単純なケアレスミスや表現を修正した。
    • 変更履歴を追加した。
  • version 1.3.8 ~
    • メールの処理部分をコマンドアダプタープラグイン(メール用)に分離した。
    • ユーザに対して必要な通知を行う責務をコマンドプラグインから剥奪し、Mail2WeblogResponse 経由で戻り値として返すよう変更した。