更新と削除の機能を追加したものの、postIDの取得方法がなかったので、激しく不便だったのだが、よく考えれば(考えなくても)レスポンスのボディに書いてあるんじゃん?と思ったら、やっぱり書いてあった。それでこの情報を元にログファイルを作ることにした。
デフォルトで ~/.bloggerpost/log.yml にログを書き込む。例えば、このエントリーのログなら
---
title: "bloggerpostにログの機能を追加"
date: 2007-01-27T21:17:00+0900
posturl: http://www.blogger.com/feeds/2861948079335449058/posts/default/4463659030598924613
url: http://yu-u.blogspot.com/2007/01/bloggerpost_5064.html
method: POST
label:
- bloggerpost
- ruby
- blogger
みたいになる。くどいと思ったらYAMLなので
require 'yaml'
YAML.each_document($stdin) do |entry|
puts "#{entry['date']} #{entry['method']}\t#{entry['posturl']}"
end
とか書いて食わせれば
2007-01-27T19:57:00+0900 PUT http://www.blogger.com/feeds/2861948079335449058/posts/default/8548166907848415497
2007-01-27T21:17:00+0900 POST http://www.blogger.com/feeds/2861948079335449058/posts/default/4463659030598924613
2007-01-27T21:17:00+0900 PUT http://www.blogger.com/feeds/2861948079335449058/posts/default/4463659030598924613
2007-01-27T21:19:42+0900 DELETE http://www.blogger.com/feeds/2861948079335449058/posts/default/8548166907848415497
みたいに簡潔になる。
このコードも書くのに手間取ったところがあって、YAMLで日本語を書き込もうとすると、なぜかバイナリ扱いになっちゃうんだよね。色々検索したら「日本語をto_yamlするとエンコードされてしまう問題を安直な方法で解決する」というページを発見。真似したらうまくいった。
0 件のコメント:
コメントを投稿