Sha256: 641b0707053440525fe152bbf67388976e571215a08ec734f17110921823ce23
Contents?: true
Size: 1.66 KB
Versions: 13
Compression:
Stored size: 1.66 KB
Contents
require 'monitor' require 'epub/ocf/physical_container/archive_zip' require 'epub/ocf/physical_container/unpacked_directory' require 'epub/ocf/physical_container/unpacked_uri' module EPUB class OCF class PhysicalContainer class NoEntry < StandardError class << self def from_error(error) no_entry = new(error.message) no_entry.set_backtrace error.backtrace no_entry end end end @adapter = ArchiveZip class << self def find_adapter(adapter) return adapter if adapter.instance_of? Class if adapter == :Zipruby && ! const_defined?(adapter) require 'epub/ocf/physical_container/zipruby' end const_get adapter end def adapter raise NoMethodError, "undefined method `#{__method__}' for #{self}" unless self == PhysicalContainer @adapter end def adapter=(adapter) raise NoMethodError, "undefined method `#{__method__}' for #{self}" unless self == PhysicalContainer @adapter = find_adapter(adapter) end def open(container_path) _adapter.new(container_path).open do |container| yield container end end def read(container_path, path_name) open(container_path) {|container| container.read(path_name) } end private def _adapter (self == PhysicalContainer) ? @adapter : self end end def initialize(container_path) @container_path = container_path @monitor = Monitor.new end end end end
Version data entries
13 entries across 13 versions & 1 rubygems