epub-maker 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.markdown +7 -0
- data/README.markdown +5 -0
- data/Rakefile +2 -1
- data/epub-maker.gemspec +2 -1
- data/lib/epub/maker.rb +7 -2
- data/lib/epub/maker/ocf.rb +1 -1
- data/lib/epub/maker/ocf/physical_container.rb +7 -2
- data/lib/epub/maker/ocf/physical_container/archive_zip.rb +27 -4
- data/lib/epub/maker/ocf/physical_container/zipruby.rb +1 -1
- data/lib/epub/maker/publication.rb +2 -2
- data/lib/epub/maker/task.rb +3 -1
- data/lib/epub/maker/version.rb +1 -1
- data/test/test_maker_publication.rb +1 -1
- metadata +18 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6317049b8e2e449885ad8eb99584c4d50b926250
|
4
|
+
data.tar.gz: c5418890d270746471835b7bba2a83fc1ece45a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c897619e13826f2f3eab0d170bb499f3a55005b519f7892dba768825ea2bf62e9ffdd0340726ea033d7498ff88fea109f1517b4ea2e7c41008b3641aca578116
|
7
|
+
data.tar.gz: 80b88d8cbdf531bee5c5d8ce1f5352c85a69d449076711dea1882d3a4070073f1a5698e4a1d7d099f45dc184cc7fd3d5f347d7fdbd12ae35bf1d8857cbbd53d3
|
data/CHANGELOG.markdown
CHANGED
data/README.markdown
CHANGED
@@ -145,6 +145,11 @@ Todo
|
|
145
145
|
|
146
146
|
Recent Changes
|
147
147
|
--------------
|
148
|
+
### 0.0.4
|
149
|
+
* API change: #save -> #write for PhysicalContainer classes
|
150
|
+
* Bump required EPUB Parser version: 0.2.0 -> 0.2.6
|
151
|
+
* Deprecate `EPUB::OCF::PhysicalContainer.save`
|
152
|
+
|
148
153
|
### 0.0.3
|
149
154
|
* Bump up required Ruby version: >= 2.0.0 -> >= 2.1.0
|
150
155
|
|
data/Rakefile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rake/testtask'
|
2
2
|
require 'rake/clean'
|
3
3
|
require 'yard'
|
4
|
-
require "
|
4
|
+
require "rubygems/tasks"
|
5
5
|
|
6
6
|
task :default => :test
|
7
7
|
|
@@ -9,3 +9,4 @@ CLEAN.include 'README.html'
|
|
9
9
|
|
10
10
|
Rake::TestTask.new
|
11
11
|
YARD::Rake::YardocTask.new
|
12
|
+
Gem::Tasks.new
|
data/epub-maker.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
|
|
20
20
|
gem.require_paths = ["lib"]
|
21
21
|
gem.required_ruby_version = '>= 2.1.0'
|
22
22
|
|
23
|
-
gem.add_runtime_dependency 'epub-parser', '>= 0.2.
|
23
|
+
gem.add_runtime_dependency 'epub-parser', '>= 0.2.6'
|
24
24
|
gem.add_runtime_dependency 'pathname-common_prefix'
|
25
25
|
gem.add_runtime_dependency 'mimemagic'
|
26
26
|
gem.add_runtime_dependency 'ruby-uuid'
|
@@ -37,4 +37,5 @@ Gem::Specification.new do |gem|
|
|
37
37
|
gem.add_development_dependency 'pry'
|
38
38
|
gem.add_development_dependency 'pry-doc'
|
39
39
|
gem.add_development_dependency 'yard'
|
40
|
+
gem.add_development_dependency 'rubygems-tasks'
|
40
41
|
end
|
data/lib/epub/maker.rb
CHANGED
@@ -56,7 +56,9 @@ module EPUB
|
|
56
56
|
error.message,
|
57
57
|
"[#{self}]Working directory remained at: #{dir}"
|
58
58
|
].join($RS))
|
59
|
-
backtrace.unshift("#{__FILE__}:#{__LINE__}:in `rescue in #{__method__}'")
|
59
|
+
backtrace.unshift("#{__FILE__}:#{__LINE__}:in `rescue in #{__method__}'")
|
60
|
+
error.set_backtrace backtrace
|
61
|
+
raise error
|
60
62
|
end
|
61
63
|
end
|
62
64
|
end
|
@@ -71,10 +73,13 @@ module EPUB
|
|
71
73
|
end
|
72
74
|
|
73
75
|
def make_package
|
74
|
-
|
76
|
+
package = Publication::Package.new
|
77
|
+
package.book = self
|
75
78
|
package.make do |package|
|
76
79
|
yield package if block_given?
|
77
80
|
end
|
81
|
+
no_package_rootfile = rootfiles.find {|rf| rf.package.nil?}
|
82
|
+
no_package_rootfile.package = package if no_package_rootfile
|
78
83
|
package
|
79
84
|
end
|
80
85
|
|
data/lib/epub/maker/ocf.rb
CHANGED
@@ -12,7 +12,7 @@ module EPUB
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def save
|
15
|
-
book.container_adapter.
|
15
|
+
book.container_adapter.write book.epub_file, File.join(DIRECTORY, Container::FILE), self.container.to_xml if self.container
|
16
16
|
end
|
17
17
|
|
18
18
|
# @overload make_container
|
@@ -13,11 +13,16 @@ module EPUB
|
|
13
13
|
class OCF
|
14
14
|
class PhysicalContainer
|
15
15
|
class << self
|
16
|
-
def
|
16
|
+
def write(container_path, path_name, content)
|
17
17
|
open(container_path) {|container|
|
18
|
-
container.
|
18
|
+
container.write(path_name, content)
|
19
19
|
}
|
20
20
|
end
|
21
|
+
|
22
|
+
def save(container_path, path_name, content)
|
23
|
+
warn "EPUB::OCF::PhysicalContainer.#{__method__} is deprecated. Use .write instead"
|
24
|
+
write(container_path, path_name, content)
|
25
|
+
end
|
21
26
|
end
|
22
27
|
end
|
23
28
|
end
|
@@ -4,11 +4,34 @@ module EPUB
|
|
4
4
|
class OCF
|
5
5
|
class PhysicalContainer
|
6
6
|
class ArchiveZip < self
|
7
|
-
|
7
|
+
# @todo Write multiple files at once
|
8
|
+
def write(path_name, content)
|
8
9
|
::Dir.mktmpdir do |dir|
|
9
|
-
|
10
|
-
::File.
|
11
|
-
|
10
|
+
tmp_archive_path = ::File.join(dir, ::File.basename(@container_path) + '.tmp')
|
11
|
+
::File.open @container_path do |archive_in|
|
12
|
+
::File.open tmp_archive_path, 'w' do |archive_out|
|
13
|
+
archive_out.binmode
|
14
|
+
Archive::Zip.open archive_in, :r do |z_in|
|
15
|
+
Archive::Zip.open archive_out, :w do |z_out|
|
16
|
+
updated = false
|
17
|
+
z_in.each do |entry|
|
18
|
+
if entry.zip_path == path_name
|
19
|
+
entry.file_data = StringIO.new(content)
|
20
|
+
updated = true
|
21
|
+
end
|
22
|
+
z_out << entry
|
23
|
+
end
|
24
|
+
unless updated
|
25
|
+
entry = Archive::Zip::Entry::File.new(path_name)
|
26
|
+
entry.file_data = StringIO.new(content)
|
27
|
+
z_out << entry
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
::File.chmod 0666 & ~::File.umask, tmp_archive_path
|
34
|
+
::File.rename tmp_archive_path, @container_path
|
12
35
|
end
|
13
36
|
end
|
14
37
|
end
|
@@ -78,7 +78,7 @@ module EPUB
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def save
|
81
|
-
book.container_adapter.
|
81
|
+
book.container_adapter.write book.epub_file, book.rootfile_path, to_xml
|
82
82
|
end
|
83
83
|
|
84
84
|
module ContentModel
|
@@ -261,7 +261,7 @@ module EPUB
|
|
261
261
|
raise 'no content nor content_file'
|
262
262
|
end
|
263
263
|
book = manifest.package.book
|
264
|
-
book.container_adapter.
|
264
|
+
book.container_adapter.write book.epub_file, entry_name, content_to_save
|
265
265
|
end
|
266
266
|
|
267
267
|
# Save document into EPUB archive when block ended
|
data/lib/epub/maker/task.rb
CHANGED
@@ -59,6 +59,8 @@ module EPUB
|
|
59
59
|
|
60
60
|
if make_rootfiles
|
61
61
|
book.make_package do |package|
|
62
|
+
book.ocf.container.rootfile.package = package
|
63
|
+
|
62
64
|
package.dir = package_direction
|
63
65
|
|
64
66
|
package.make_metadata do |metadata|
|
@@ -109,7 +111,7 @@ module EPUB
|
|
109
111
|
else
|
110
112
|
raise 'No rootfile set' if @rootfiles.empty?
|
111
113
|
rf = rootfiles.first
|
112
|
-
book.package = EPUB::Parser::Publication.new(File.read(rf)
|
114
|
+
book.package = EPUB::Parser::Publication.new(File.read(rf)).parse
|
113
115
|
end
|
114
116
|
end
|
115
117
|
end
|
data/lib/epub/maker/version.rb
CHANGED
@@ -7,7 +7,7 @@ class TestMakerPublication < Test::Unit::TestCase
|
|
7
7
|
def setup
|
8
8
|
rootfile = 'OPS/ルートファイル.opf'
|
9
9
|
@opf = File.read(File.expand_path("../fixtures/book/#{rootfile}", __FILE__))
|
10
|
-
@package = EPUB::Parser::Publication.new(@opf
|
10
|
+
@package = EPUB::Parser::Publication.new(@opf).parse
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_to_xml_attribute
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epub-maker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- KITAITI Makoto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: epub-parser
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.2.
|
19
|
+
version: 0.2.6
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.2.
|
26
|
+
version: 0.2.6
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: pathname-common_prefix
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -234,6 +234,20 @@ dependencies:
|
|
234
234
|
- - ">="
|
235
235
|
- !ruby/object:Gem::Version
|
236
236
|
version: '0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: rubygems-tasks
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
237
251
|
description: This library supports making and editing EPUB books
|
238
252
|
email:
|
239
253
|
- KitaitiMakoto@gmail.com
|
@@ -317,4 +331,3 @@ test_files:
|
|
317
331
|
- test/test_maker_ocf.rb
|
318
332
|
- test/test_maker_publication.rb
|
319
333
|
- test/test_task.rb
|
320
|
-
has_rdoc:
|