module BinData::BasePrimitive::AssertedValuePlugin
def _value
def _value reading? ? @value : eval_parameter(:asserted_value) end
def assert!
def assert! assert_value(snapshot) end
def assert_value(current_value)
def assert_value(current_value) expected = eval_parameter(:asserted_value, :value => current_value) if not expected raise ValidityError, "value '#{current_value}' not as expected for #{debug_name}" elsif current_value != expected and expected != true raise ValidityError, "value is '#{current_value}' but " + "expected '#{expected}' for #{debug_name}" end end
def assign(val)
def assign(val) assert_value(val) super(val) end
def do_read(io) #:nodoc:
def do_read(io) #:nodoc: super(io) assert! end