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