module BinData::BasePrimitive::AssertPlugin
def assert!
def assert! current_value = snapshot expected = eval_parameter(:assert, :value => current_value) msg = if not expected and current_value.nil? "assertion failed" elsif not expected "value '#{current_value}' not as expected" elsif expected != true and current_value != expected "value is '#{current_value}' but expected '#{expected}'" else nil end raise ValidityError, "#{msg} for #{debug_name}" if msg end
def assign(val)
def assign(val) super(val) assert! end
def do_read(io) #:nodoc:
def do_read(io) #:nodoc: super(io) assert! end