前回のリリースから約 8 ヶ月、 Automatic Ruby に大きな変更を加えたバージョンをリリースした。
いつも通り以下のコマンドでインストールされる。
実はリリース自体は先月も先々月もおこなっていた。しかしそれらは依存モジュールの一部仕様変更に伴いそれらとの整合性を取るためのリリースという意味合いが強かった。それらのリリースでは末尾のバージョン番号をインクリメントするだけでも良かったかもしれない。
マイルストーンや ChangeLog を見ればわかる通り今回はそれなりに色々と変更を加えている。以下、主要な機能追加および変更点を挙げていこう。
フィードの file URI scheme 対応
ファイル保存用プラグイン Store::TargetLink が Store::File に名称変更となり仕様も変化した。古いレシピファイルの中で Store::TargetLink を利用している人は単純にプラグイン名を置換する必要がある。
新しい仕様では、まず後続に流れるフィードの link が file URI scheme に書き換わるようになった。これにより後述の Publish::AmazonS3 で処理できるようになる。また正常に保存されたファイルのフィードのみが出力されるようになった。
このフィード内の link に file URI scheme を含めるというやり方は、今後ファイルのハンドリングの方法として主流としていきたい。この Automatic Ruby を単なるフィードアグリゲータとしてだけでなく、総合的な自動処理フレームワークとして確立していく上で必要性がある。
Amazon S3 とのファイル転送機能
新プラグイン Publish::AmazonS3 の追加。これは Amazon S3 にファイルをアップロードをするためのプラグインである。このプラグインは先行のフィードに file URI scheme が含まれていることが前提となっている。
また Store::File で先行のフィードのリンクが s3n スキームであった場合 Amazon S3 から該当のファイルを保存するように試みる。この際は設定ファイルに Amazon を利用するためのアクセスキーなどの情報が必要となる。
自動処理のためのフィード生成機能の強化
さらに Subscription::Text に機能を追加し、タブ区切りのテキストファイル (TSV 形式) を読んでフィードを生成することができるようになった。これによってたとえば Hadoop や統計ソフトウェアの出力から Automatic Ruby で処理するためのフィードパイプラインを生成するといったことも可能になる。
ログメッセージの改善
ログに出力されるメッセージを改善し、具体的にどのプラグインで何をしているメッセージなのかわかりやすくした。
内部のリファクタリングとフィード生成用モジュールの追加
フレームワークの内部的には、フィードを解析するために用意された Automatic::FeedParser にロジックが従来は集中していた。これを整理してフィードを解析する部分を Automatic::FeedMaker に分離した。この Automatic::FeedMaker ではプラグイン内で新しくフィードを生成しなおすときに必要となるメソッドが実装されている。
その他
詳細はリポジトリを参照してコードを読んでほしい。今回は特に AWS を使うために機能を強化した面があり、この点についてはまだ暫定的に対応した段階である。現状はまだまだなので今後も継続的に開発を進める。たとえば Amazon S3 の特定のフォルダのファイル一覧を取得してフィードを生成するプラグインなどを作ると便利であろう。いつでも pull request 歓迎である。
なお今回初めて利用してみるという人は今までの記事もあわせて参照すると良いだろう。たとえば Automatic Ruby と Fluentd を連携する方法や GitHub の最新の Automatic Ruby を使う方法、画像をまとめて Tumblr から落とす方法などが説明済みである。内容が少々古い箇所については最新に読み替える必要がある。