Module: BinData::BitAligned

Defined in:
lib/bindata/alignment.rb

Overview

A monkey patch to force byte-aligned primitives to become bit-aligned. This allows them to be used at non byte based boundaries.

class BitString < BinData::String
  bit_aligned
end

class MyRecord < BinData::Record
  bit4       :preamble
  bit_string :str, :length => 2
end

Defined Under Namespace

Classes: BitAlignedIO

Instance Method Summary collapse

Instance Method Details

#do_num_bytesObject



63
64
65
# File 'lib/bindata/alignment.rb', line 63

def do_num_bytes
  super.to_f
end

#do_write(io) ⇒ Object



67
68
69
# File 'lib/bindata/alignment.rb', line 67

def do_write(io)
  value_to_binary_string(_value).each_byte { |v| io.writebits(v, 8, :big) }
end

#read_and_return_value(io) ⇒ Object



59
60
61
# File 'lib/bindata/alignment.rb', line 59

def read_and_return_value(io)
  super(BitAlignedIO.new(io))
end