Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

「BinData」で余計なデータを放り込んでおく箱が必要な場合、restを使う

流れてくるデータに対し、とりあえず放り込む箱が欲しいなんて時は、restが使えます。

つかいかた

class D < BinData::Record
  string :a, :read_length => 10
  rest   :rest
end  

という風に実装した場合

obj = D.read(Array('a'..'z').join)
#>> {:a=>"abcdefghij", :rest=>"klmnopqrstuvwxyz"}
obj.a
#>> "abcdefghij"

obj.rest
#>> "klmnopqrstuvwxyz"

これをうまく使うと
「要件未確定だけど、領域は決まってる」というデータに対してうまい事できます。
定義が決まってからできる仕事ばっかりじゃないんじゃ