Module: BinData::CheckOrAdjustOffsetPlugin

Included in:
Base
Defined in:
lib/bindata/offset.rb

Overview

WARNING: THIS IS UNSUPPORTED!!

This was a (failed) experimental feature that allowed seeking within the input stream. It remains here for backwards compatability for the few people that used it.

The official way to skip around the stream is to use BinData::Skip with the ‘:to_abs_offset` parameter.

Parameters

Parameters may be provided at initialisation to control the behaviour of an object. These parameters are:

:check_offset

Raise an error if the current IO offset doesn’t meet this criteria. A boolean return indicates success or failure. Any other return is compared to the current offset. The variable offset is made available to any lambda assigned to this parameter. This parameter is only checked before reading.

:adjust_offset

Ensures that the current IO offset is at this position before reading. This is like :check_offset, except that it will adjust the IO offset instead of raising an error.

Defined Under Namespace

Modules: AdjustOffsetMixin, CheckOffsetMixin

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

:nodoc:



29
30
31
32
# File 'lib/bindata/offset.rb', line 29

def self.included(base) #:nodoc:
  base.optional_parameters :check_offset, :adjust_offset
  base.mutually_exclusive_parameters :check_offset, :adjust_offset
end

Instance Method Details

#initialize_shared_instanceObject



34
35
36
37
38
# File 'lib/bindata/offset.rb', line 34

def initialize_shared_instance
  extend CheckOffsetMixin  if has_parameter?(:check_offset)
  extend AdjustOffsetMixin if has_parameter?(:adjust_offset)
  super
end