class Officedoc::Package::Raw::RubyZipEngine

Public Class Methods

new(stream) click to toggle source
# File lib/officedoc/package/raw/ruby_zip_engine.rb, line 8
def initialize(stream)
  @f = ::Zip::File.new(stream, true, true)
  @f.read_from_stream(stream)
end

Public Instance Methods

entries() click to toggle source
# File lib/officedoc/package/raw/ruby_zip_engine.rb, line 13
def entries
  @entries ||= get_entries
end
entry(name) click to toggle source
# File lib/officedoc/package/raw/ruby_zip_engine.rb, line 16
def entry(name)
  @entries_by_name ||= {}
  @entries_by_name.fetch(name) { get_entry(name) }
end
entry_read_stream(name,&block) click to toggle source
# File lib/officedoc/package/raw/ruby_zip_engine.rb, line 20
def entry_read_stream(name,&block)
  entry(name).get_input_stream(&block)
end

Private Instance Methods

get_entries() click to toggle source
# File lib/officedoc/package/raw/ruby_zip_engine.rb, line 24
        def get_entries
  entries = []
  @f.each { |entry| entries << entry }
  entries
end
get_entry(name) click to toggle source
# File lib/officedoc/package/raw/ruby_zip_engine.rb, line 29
        def get_entry(name)
  entries.find { |entry| entry.name == name } || Officedoc.null
end