Files

Class/Module Index [+]

Quicksearch

BinData::Virtual

A virtual field is one that is neither read, written nor occupies space in the data stream. It is used to make assertions or as a convenient label for determining offsets or storing values.

require 'bindata'

class A < BinData::Record
  string  :a, :read_length => 5
  string  :b, :read_length => 5
  virtual :c, :assert => lambda { a == b }
end

obj = A.read("abcdeabcde")
obj.a #=> "abcde"
obj.c.offset #=> 10

obj = A.read("abcdeABCDE") #=> BinData::ValidityError: assertion failed for obj.c

Parameters

Parameters may be provided at initialisation to control the behaviour of an object. These params include those for BinData::Base as well as:

:assert

Raise an error when reading or assigning if the value of this evaluated parameter is false.

:value

The virtual object will always have this value.

Public Instance Methods

read_and_return_value(io) click to toggle source
# File lib/bindata/virtual.rb, line 37
def read_and_return_value(io)
  nil
end
sensible_default() click to toggle source
# File lib/bindata/virtual.rb, line 41
def sensible_default
  nil
end
value_to_binary_string(val) click to toggle source
# File lib/bindata/virtual.rb, line 33
def value_to_binary_string(val)
  ""
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.