def save(filename)
      Dir.mktmpdir do |dir|
        prepare(dir)

        NCX.new(
          :uid => @uid,
          :title => @titles[0],
          :nav => @nav
        ).save(File.join(dir, @ncx_file))

        OPF.new(
          :title => @titles,
          :identifier => @identifiers,
          :creator => @creators,
          :publisher => @publishers,
          :date => @dates,
          :language => @languages,
          :subject => @subjects,
          :description => @descriptions,
          :rights => @rightss,
          :relation => @relations,
          :manifest => @files.map{|i| File.basename(i)},
          :ncx => @ncx_file
        ).save(File.join(dir, @opf_file))

        OCF.new(
          :dir => dir,
          :container => @opf_file
        ).save(filename)
      end
    end
def save(filename)
      Dir.mktmpdir do |dir|
        prepare(dir)

        NCX.new(
          :uid => @uid,
          :title => @titles[0],
          :nav => @nav
        ).save(File.join(dir, @ncx_file))

        OPF.new(
          :title => @titles,
          :identifier => @identifiers,
          :creator => @creators,
          :publisher => @publishers,
          :date => @dates,
          :language => @languages,
          :subject => @subjects,
          :description => @descriptions,
          :rights => @rightss,
          :relation => @relations,
          :manifest => @files.map{|i| File.basename(i)},
          :ncx => @ncx_file
        ).save(File.join(dir, @opf_file))

        OCF.new(
          :dir => dir,
          :container => @opf_file
        ).save(filename)
      end
    end
@param [Proc] block the block for initialize
 Save as ePub file

 @param [String] filename the ePub file name to save