class Xlsxrb::Ooxml::Cfb::Reader
Reads streams from a Compound File Binary buffer.
Attributes
entries
[R]
untyped
Public Class Methods
(untyped data) → untyped
Source
# File lib/xlsxrb/ooxml/cfb.rb, line 63 def self.cfb?(data) return false if data.nil? || data.bytesize < 8 data[0, 8] == MAGIC end
(untyped data) → untyped
Source
# File lib/xlsxrb/ooxml/cfb.rb, line 69 def initialize(data) @data = data.b raise Xlsxrb::Error, "Invalid CFB file header signature" unless Reader.cfb?(@data) parse_header build_fat parse_directory load_mini_stream end
Public Instance Methods
(untyped name) → untyped
Source
# File lib/xlsxrb/ooxml/cfb.rb, line 83 def read_stream(name) entry = @entries.find { |e| e.name.casecmp?(name) && e.stream? } return nil unless entry if entry.size < @mini_cutoff && @mini_stream && !@minifat.empty? read_mini_stream_data(entry.start_sector, entry.size) else read_regular_stream_data(entry.start_sector, entry.size) end end
() → untyped
Source
# File lib/xlsxrb/ooxml/cfb.rb, line 79 def stream_names @entries.select(&:stream?).map(&:name) end