2年前に書いたrendez-vous、当時は3DSの画像の受け渡し用だったけど、今はマリシス(ラズパイとWebCamによる愛犬観察システム)やラズパイのIPアドレス通知とかに使われてます。
それを改造して、dRubyで待ち合わせの中身にアクセスできるようにしました。*1
class RdVUp < WEBrick::CGI include ERB::Util def initialize(*args) super(*args) @rdv = RdVSpace.new end attr_reader :rdv # ← これを増やしただけ ...
これにより、Webサービス版のrendez-voussとdRuby経由で待ち合わせができます。
あるチャネルにラズパイから水温計のデータが送られてくるのですが、それを取得するにはこんな感じ。
$ irb -rdrb irb(main):001:0> ro = DRbObject.new_with_uri('druby://localhost:54331') => #<RdVUp:0x9199ad4> irb(main):001:0> ro.rdv.take('チャネル名') => ["text/plain", "26.75\t2015-07-29 17:57:10\n"]
これを使って水温*2をin-memory dripで記録して、ERBで整形したページがこれ。
http://www.druby.org/chart.html
*1:なお、前のバージョンは次のページにあります。- http://d.hatena.ne.jp/m_seki/20130827#1377614857
*2:時間帯によって水温だったり室温だったりするんだけどね。