Class: PropertyList::BinaryParser

Inherits:
Object
  • Object
show all
Includes:
BinaryMarkers
Defined in:
lib/property-list/binary_parser.rb

Overview

Reference:

https://opensource.apple.com/source/CF/CF-1151.16/CFBinaryPList.c.auto.html

Constant Summary

Constants included from BinaryMarkers

PropertyList::BinaryMarkers::MARKER_ARRAY, PropertyList::BinaryMarkers::MARKER_ASCII_STRING, PropertyList::BinaryMarkers::MARKER_DATA, PropertyList::BinaryMarkers::MARKER_DATE, PropertyList::BinaryMarkers::MARKER_DICT, PropertyList::BinaryMarkers::MARKER_FALSE, PropertyList::BinaryMarkers::MARKER_FILL, PropertyList::BinaryMarkers::MARKER_INT, PropertyList::BinaryMarkers::MARKER_NO_BASE_URL, PropertyList::BinaryMarkers::MARKER_NULL, PropertyList::BinaryMarkers::MARKER_ORD_SET, PropertyList::BinaryMarkers::MARKER_REAL, PropertyList::BinaryMarkers::MARKER_SET, PropertyList::BinaryMarkers::MARKER_TRUE, PropertyList::BinaryMarkers::MARKER_UID, PropertyList::BinaryMarkers::MARKER_UTF16BE_STRING, PropertyList::BinaryMarkers::MARKER_UTF8_STRING, PropertyList::BinaryMarkers::MARKER_UUID, PropertyList::BinaryMarkers::MARKER_WITH_BASE_URL, PropertyList::BinaryMarkers::TIME_INTERVAL_SINCE_1970

Instance Method Summary collapse

Constructor Details

#initialize(src) ⇒ BinaryParser

Returns a new instance of BinaryParser.



12
13
14
15
16
17
# File 'lib/property-list/binary_parser.rb', line 12

def initialize src
  @src = src

  @offset_byte_size, @ref_byte_size, @flatten_objects_size, @root_object_index, @offset_table_addr = \
    @src.byteslice((-32)..(-1)).unpack '@6C2Q>3'
end

Instance Method Details

#parseObject



19
20
21
22
# File 'lib/property-list/binary_parser.rb', line 19

def parse
  @offset_table = decode_offset_table
  decode_id @root_object_index
end