summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/asciidoctor-epub3/converter.rb2
-rw-r--r--spec/converter_spec.rb6
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/asciidoctor-epub3/converter.rb b/lib/asciidoctor-epub3/converter.rb
index 144e7b8..ffb1cf4 100644
--- a/lib/asciidoctor-epub3/converter.rb
+++ b/lib/asciidoctor-epub3/converter.rb
@@ -30,7 +30,7 @@ module Asciidoctor
unless (entry_dir = ::File.dirname entry.name) == '.' || (::File.directory? entry_dir)
::FileUtils.mkdir_p entry_dir
end
- entry.extract
+ entry.extract dest_path = entry.name
end
end
end
diff --git a/spec/converter_spec.rb b/spec/converter_spec.rb
index b3ad1c7..4cacebf 100644
--- a/spec/converter_spec.rb
+++ b/spec/converter_spec.rb
@@ -31,6 +31,12 @@ describe Asciidoctor::Epub3::Converter do
end
end
+ it 'extracts book when given ebook-extract attribute' do
+ _, out_file = to_epub fixture_file('minimal/book.adoc'), attributes: { 'ebook-extract' => '' }
+ out_dir = out_file.dirname
+ expect(out_dir.join('book', 'EPUB', 'package.opf')).to exist
+ end
+
it 'uses current date as fallback when date attributes cannot be parsed' do
# TODO: assert that error log contains 'failed to parse revdate' error when we add test infrastructure for logs
book, = to_epub fixture_file('minimal/book.adoc'), attributes: { 'revdate' => 'garbage' }