Sha256: e8d0caeb1b39cb9c821bb4733f48f0b1c924bbfc8a7695b9c5aa9c39b05afa13

Contents?: true

Size: 1.24 KB

Versions: 1

Compression:

Stored size: 1.24 KB

Contents

require 'tmpdir'
require 'epub/ocf/physical_container'
[
  [:ArchiveZip, 'archive_zip'],
  [:Zipruby, 'zipruby']
].each do |(class_name, feature_name)|
  if EPUB::OCF::PhysicalContainer.const_defined? class_name
    require "epub/maker/ocf/physical_container/#{feature_name}"
  end
end

module EPUB
  class OCF
    class PhysicalContainer
      class << self
        @@mtime = nil

        def mtime
          @@mtime
        end

        # Sets +mtime+, which is used when setting mtime of file in EPUB(ZIP) archive.
        # Currently supported for only {ArchiveZip} adapter
        #
        # @example
        #   EPUB::OCF::PhysicalCotainer.adapter = :ArchiveZip
        #   EPUB::OCF::PhysicalCotainer.mtime = Time.new(2020, 1, 1)
        #
        # @return [Time]
        def mtime=(time)
          @@mtime = time
        end

        def write(container_path, path_name, content)
          open(container_path) {|container|
            container.write(path_name, content, mtime: mtime)
          }
        end

        def save(container_path, path_name, content)
          warn "EPUB::OCF::PhysicalContainer.#{__method__} is deprecated. Use .write instead"
          write(container_path, path_name, content, mtime: mtime)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
epub-maker-0.1.5 lib/epub/maker/ocf/physical_container.rb