Bye Bye Moore

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

「BinData」でエンディアンが変わらない場合はendianオプションを使ってやれば楽ができる

エンディアンがBigかLittleかで固定されている場合、endianを設定してあげれば以降「be」だの「le」だのと付けなくてすみます。
そのため、
前回の内容

require 'bindata'

class Sample < BinData::Record
  endian :big
  uint8  :val_a
  uint8  :val_b
  uint16 :val_c 
  string :str, :read_length => 11
  uint8  :val_end
end 

p source = "1234567890abcdef"
s = Sample.read(source)

と書き換えることができます。
ちょっとだけ楽になりますね。