Class: BinData::Skip
- Inherits:
-
BasePrimitive
- Object
- Base
- BasePrimitive
- BinData::Skip
- Defined in:
- lib/bindata/skip.rb
Overview
Skip will skip over bytes from the input stream. If the stream is not seekable, then the bytes are consumed and discarded.
When writing, skip will write the appropriate number of zero bytes.
require 'bindata'
class A < BinData::Record
skip length: 5
string :a, read_length: 5
end
obj = A.read("abcdefghij")
obj.a #=> "fghij"
class B < BinData::Record
skip until_valid: [:string, {read_length: 2, assert: "ef"} ]
string :b, read_length: 5
end
obj = B.read("abcdefghij")
obj.b #=> "efghi"
Parameters
Skip objects accept all the params that BinData::BasePrimitive does, as well as the following:
:length
-
The number of bytes to skip.
:to_abs_offset
-
Skips to the given absolute offset.
:until_valid
-
Skips untils a given byte pattern is matched. This parameter contains a type that will raise a BinData::ValidityError unless an acceptable byte sequence is found. The type is represented by a Symbol, or if the type is to have params # passed to it, then it should be provided as #
[type_symbol, hash_params]
.
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods inherited from BasePrimitive
#<=>, #assign, bit_aligned, #clear?, #do_num_bytes, #do_read, #do_read_with_hook, #do_write, #eql?, #hash, #initialize_instance, #method_missing, #respond_to?, #snapshot, #trace_value, turn_off_tracing, turn_on_tracing, #value, #value=
Methods inherited from Base
#==, #=~, #abs_offset, arg_processor, auto_call_delayed_io, bindata_name, #clear, #debug_name, #eval_parameter, #get_parameter, #has_parameter?, #initialize_instance, #initialize_with_warning, #inspect, #lazy_evaluator, #new, #num_bytes, #pretty_print, #read, read, register_subclasses, #rel_offset, #safe_respond_to?, #to_binary_s, #to_hex, #to_s, unregister_self, #write
Methods included from AcceptedParametersPlugin
#accepted_parameters, #default_parameters, #mandatory_parameters, #mutually_exclusive_parameters, #optional_parameters
Methods included from CheckOrAdjustOffsetPlugin
Methods included from RegisterNamePlugin
Methods included from Framework
#assign, #bit_aligned?, #clear?, #debug_name_of, #offset_of, #snapshot
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class BinData::BasePrimitive
Instance Method Details
#initialize_shared_instance ⇒ Object
50 51 52 53 54 55 |
# File 'lib/bindata/skip.rb', line 50 def initialize_shared_instance extend SkipLengthPlugin if has_parameter?(:length) extend SkipToAbsOffsetPlugin if has_parameter?(:to_abs_offset) extend SkipUntilValidPlugin if has_parameter?(:until_valid) super end |