epub-parser 0.4.9 → 0.5.0
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/.gitlab-ci.yml +17 -57
- data/CHANGELOG.adoc +4 -0
- data/README.adoc +4 -4
- data/Rakefile +0 -1
- data/epub-parser.gemspec +2 -1
- data/lib/epub/ocf/physical_container/ruzip.rb +31 -0
- data/lib/epub/ocf/physical_container.rb +2 -2
- data/lib/epub/parser/version.rb +1 -1
- data/test/test_ocf_physical_container.rb +11 -0
- metadata +19 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ae67229ef10676e051fcac1f01f8c96bdfba667cc36c53584475795f3b9dbd82
|
|
4
|
+
data.tar.gz: 798548f2139eb8a807b95cabab3478a1d477b50ee3511d923f3f6a00b343d559
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: eb2a311ed69638f05b5d6e9e553e284825ee5bf48db54b0cec418042c221298c1e1c15f070aecd334b2ea6ddcdff8f351b8c190ffa59379fc84a4c00874d986d
|
|
7
|
+
data.tar.gz: 67c0e4e3eaaae19b2bcdb9d7e0f2fb93b0f9f0410ff36ddd47d1f8b2ea56ec509121226217ec46c96cc1ed122eba5eb310e3544cc573e920121c4b45c6bf9c93
|
data/.gitlab-ci.yml
CHANGED
|
@@ -1,76 +1,36 @@
|
|
|
1
1
|
before_script:
|
|
2
|
+
- apt update -y && apt install -y clang
|
|
3
|
+
- curl https://sh.rustup.rs -sSf | sh -s -- -y
|
|
4
|
+
- . "$HOME/.cargo/env"
|
|
2
5
|
- ruby -v
|
|
3
6
|
- which ruby
|
|
4
|
-
- bundle
|
|
7
|
+
- bundle config --local build.zipruby "--with-zlib-include=/usr/include --with-cflags='-Wno-error=implicit-function-declaration -Wno-error=implicit-int -Wno-error=incompatible-pointer-types'"
|
|
8
|
+
- bundle install --jobs=$(nproc) --path=deps "${FLAGS[@]}" || (cat deps/ruby/3.4.0/extensions/x86_64-linux/3.4.0/zipruby-*/mkmf.log && exit 1)
|
|
5
9
|
- bundle clean
|
|
6
10
|
|
|
7
|
-
test:
|
|
8
|
-
image: ruby
|
|
9
|
-
script:
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
key: ruby:2.7
|
|
14
|
-
paths:
|
|
15
|
-
- deps
|
|
16
|
-
|
|
17
|
-
test:3.0:
|
|
18
|
-
image: ruby:3.0
|
|
19
|
-
script: bundle exec rake test XML_BACKEND=REXML 2>/dev/null && bundle exec rake test XML_BACKEND=Oga 2>/dev/null && bundle exec rake test XML_BACKEND=Nokogiri 2>/dev/null
|
|
20
|
-
except:
|
|
21
|
-
- tags
|
|
22
|
-
cache:
|
|
23
|
-
key: ruby:3.0
|
|
24
|
-
paths:
|
|
25
|
-
- deps
|
|
26
|
-
|
|
27
|
-
test:3.1:
|
|
28
|
-
image: ruby:3.1
|
|
29
|
-
script: bundle exec rake test XML_BACKEND=REXML 2>/dev/null && bundle exec rake test XML_BACKEND=Oga 2>/dev/null && bundle exec rake test XML_BACKEND=Nokogiri 2>/dev/null
|
|
30
|
-
except:
|
|
31
|
-
- tags
|
|
32
|
-
cache:
|
|
33
|
-
key: ruby:3.1
|
|
34
|
-
paths:
|
|
35
|
-
- deps
|
|
36
|
-
|
|
37
|
-
test:3.2:
|
|
38
|
-
image: ruby:3.2
|
|
39
|
-
script: bundle exec rake test XML_BACKEND=REXML 2>/dev/null && bundle exec rake test XML_BACKEND=Oga 2>/dev/null && bundle exec rake test XML_BACKEND=Nokogiri 2>/dev/null
|
|
40
|
-
except:
|
|
41
|
-
- tags
|
|
42
|
-
cache:
|
|
43
|
-
key: ruby:3.2
|
|
44
|
-
paths:
|
|
45
|
-
- deps
|
|
46
|
-
|
|
47
|
-
test:3.3:
|
|
48
|
-
image: ruby:3.3
|
|
49
|
-
script: bundle exec rake test XML_BACKEND=REXML 2>/dev/null && bundle exec rake test XML_BACKEND=Oga 2>/dev/null && bundle exec rake test XML_BACKEND=Nokogiri 2>/dev/null
|
|
50
|
-
except:
|
|
51
|
-
- tags
|
|
52
|
-
cache:
|
|
53
|
-
key: ruby:3.3
|
|
54
|
-
paths:
|
|
55
|
-
- deps
|
|
56
|
-
|
|
57
|
-
test:3.4:
|
|
58
|
-
image: ruby:3.4
|
|
59
|
-
script: bundle exec rake test XML_BACKEND=REXML 2>/dev/null && bundle exec rake test XML_BACKEND=Oga 2>/dev/null && bundle exec rake test XML_BACKEND=Nokogiri 2>/dev/null
|
|
11
|
+
test:
|
|
12
|
+
image: ruby:$RUBY_VERSION
|
|
13
|
+
script:
|
|
14
|
+
- bundle exec rake test XML_BACKEND=REXML 2>/dev/null
|
|
15
|
+
- bundle exec rake test XML_BACKEND=Oga 2>/dev/null
|
|
16
|
+
- bundle exec rake test XML_BACKEND=Nokogiri 2>/dev/null
|
|
60
17
|
except:
|
|
61
18
|
- tags
|
|
62
19
|
cache:
|
|
63
|
-
key: ruby
|
|
20
|
+
key: ruby:$RUBY_VERSION
|
|
64
21
|
paths:
|
|
65
22
|
- deps
|
|
23
|
+
parallel:
|
|
24
|
+
matrix:
|
|
25
|
+
- RUBY_VERSION: ["3.1", "3.2", "3.3", "3.4"]
|
|
66
26
|
|
|
67
27
|
pages:
|
|
68
28
|
stage: deploy
|
|
69
29
|
image: ruby:3.4
|
|
70
30
|
dependencies:
|
|
71
|
-
- test
|
|
31
|
+
- test
|
|
72
32
|
script:
|
|
73
|
-
- bundle exec rake test doc:yard
|
|
33
|
+
- bundle exec rake test:test doc:yard
|
|
74
34
|
- mv doc public
|
|
75
35
|
- mv coverage public/
|
|
76
36
|
artifacts:
|
data/CHANGELOG.adoc
CHANGED
data/README.adoc
CHANGED
|
@@ -176,6 +176,10 @@ If you find other gems, please tell me or request a pull request.
|
|
|
176
176
|
|
|
177
177
|
== RECENT CHANGES
|
|
178
178
|
|
|
179
|
+
=== 0.5.0
|
|
180
|
+
|
|
181
|
+
* Add RuZip adapter
|
|
182
|
+
|
|
179
183
|
=== 0.4.9
|
|
180
184
|
|
|
181
185
|
* Restructure test
|
|
@@ -188,10 +192,6 @@ If you find other gems, please tell me or request a pull request.
|
|
|
188
192
|
|
|
189
193
|
* Add Rubyzip adapter
|
|
190
194
|
|
|
191
|
-
=== 0.4.7
|
|
192
|
-
|
|
193
|
-
* [BUG FIX]Fix a bug that epubinfo doesn't handle navigation properly
|
|
194
|
-
|
|
195
195
|
See {file:CHANGELOG.adoc} for older changelogs and details.
|
|
196
196
|
|
|
197
197
|
== TODOS
|
data/Rakefile
CHANGED
data/epub-parser.gemspec
CHANGED
|
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
|
|
|
29
29
|
s.add_development_dependency 'rubygems-tasks'
|
|
30
30
|
s.add_development_dependency 'zipruby'
|
|
31
31
|
s.add_development_dependency 'rubyzip', '>= 2.0.0'
|
|
32
|
+
s.add_development_dependency "ruzip"
|
|
32
33
|
s.add_development_dependency 'test-unit'
|
|
33
34
|
s.add_development_dependency 'test-unit-rr'
|
|
34
35
|
s.add_development_dependency 'test-unit-notify'
|
|
@@ -43,7 +44,7 @@ Gem::Specification.new do |s|
|
|
|
43
44
|
s.add_development_dependency 'packnga'
|
|
44
45
|
s.add_development_dependency "steep"
|
|
45
46
|
|
|
46
|
-
s.add_runtime_dependency 'archive-zip'
|
|
47
|
+
s.add_runtime_dependency 'archive-zip', ">= 0.13.0"
|
|
47
48
|
s.add_runtime_dependency 'rexml'
|
|
48
49
|
s.add_runtime_dependency 'addressable', '>= 2.3.5'
|
|
49
50
|
s.add_runtime_dependency 'rchardet', '>= 1.6.1'
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require "ruzip"
|
|
2
|
+
|
|
3
|
+
module EPUB
|
|
4
|
+
class OCF
|
|
5
|
+
class PhysicalContainer
|
|
6
|
+
class RuZip < self
|
|
7
|
+
def open
|
|
8
|
+
@monitor.synchronize do
|
|
9
|
+
@archive = ::RuZip::Archive.new(@container_path)
|
|
10
|
+
begin
|
|
11
|
+
yield self
|
|
12
|
+
ensure
|
|
13
|
+
@archive = nil
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def read(path_name)
|
|
19
|
+
if @archive
|
|
20
|
+
file = @archive.by_name(path_name)
|
|
21
|
+
raise NoEntry.new(path_name) unless file
|
|
22
|
+
|
|
23
|
+
file.read
|
|
24
|
+
else
|
|
25
|
+
open {|container| container.read(path_name)}
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -21,8 +21,8 @@ module EPUB
|
|
|
21
21
|
class << self
|
|
22
22
|
def find_adapter(adapter)
|
|
23
23
|
return adapter if adapter.instance_of? Class
|
|
24
|
-
if adapter == :Zipruby && ! const_defined?(adapter)
|
|
25
|
-
require
|
|
24
|
+
if (adapter == :Zipruby || adapter == :RuZip) && ! const_defined?(adapter)
|
|
25
|
+
require "epub/ocf/physical_container/#{adapter.downcase}"
|
|
26
26
|
end
|
|
27
27
|
const_get adapter
|
|
28
28
|
end
|
data/lib/epub/parser/version.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
2
|
require_relative "test_ocf_physical_container_base"
|
|
3
|
+
require "epub/ocf/physical_container/ruzip"
|
|
3
4
|
|
|
4
5
|
class TestOCFPhysicalContainer < TestOCFPhysicalContainerBase
|
|
5
6
|
def test_read
|
|
@@ -34,6 +35,16 @@ class TestOCFPhysicalContainer < TestOCFPhysicalContainerBase
|
|
|
34
35
|
end
|
|
35
36
|
end
|
|
36
37
|
|
|
38
|
+
class TestRuZip < self
|
|
39
|
+
include ConcreteContainer
|
|
40
|
+
|
|
41
|
+
def setup
|
|
42
|
+
super
|
|
43
|
+
@class = EPUB::OCF::PhysicalContainer::RuZip
|
|
44
|
+
@container = @class.new(@container_path)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
37
48
|
class TestUnpackedURI < self
|
|
38
49
|
def setup
|
|
39
50
|
super
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: epub-parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- KITAITI Makoto
|
|
@@ -65,6 +65,20 @@ dependencies:
|
|
|
65
65
|
- - ">="
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
67
|
version: 2.0.0
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: ruzip
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '0'
|
|
75
|
+
type: :development
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0'
|
|
68
82
|
- !ruby/object:Gem::Dependency
|
|
69
83
|
name: test-unit
|
|
70
84
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -253,14 +267,14 @@ dependencies:
|
|
|
253
267
|
requirements:
|
|
254
268
|
- - ">="
|
|
255
269
|
- !ruby/object:Gem::Version
|
|
256
|
-
version:
|
|
270
|
+
version: 0.13.0
|
|
257
271
|
type: :runtime
|
|
258
272
|
prerelease: false
|
|
259
273
|
version_requirements: !ruby/object:Gem::Requirement
|
|
260
274
|
requirements:
|
|
261
275
|
- - ">="
|
|
262
276
|
- !ruby/object:Gem::Version
|
|
263
|
-
version:
|
|
277
|
+
version: 0.13.0
|
|
264
278
|
- !ruby/object:Gem::Dependency
|
|
265
279
|
name: rexml
|
|
266
280
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -378,6 +392,7 @@ files:
|
|
|
378
392
|
- lib/epub/ocf/physical_container.rb
|
|
379
393
|
- lib/epub/ocf/physical_container/archive_zip.rb
|
|
380
394
|
- lib/epub/ocf/physical_container/rubyzip.rb
|
|
395
|
+
- lib/epub/ocf/physical_container/ruzip.rb
|
|
381
396
|
- lib/epub/ocf/physical_container/unpacked_directory.rb
|
|
382
397
|
- lib/epub/ocf/physical_container/unpacked_uri.rb
|
|
383
398
|
- lib/epub/ocf/physical_container/zipruby.rb
|
|
@@ -465,7 +480,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
465
480
|
- !ruby/object:Gem::Version
|
|
466
481
|
version: '0'
|
|
467
482
|
requirements: []
|
|
468
|
-
rubygems_version: 3.
|
|
483
|
+
rubygems_version: 3.7.2
|
|
469
484
|
specification_version: 4
|
|
470
485
|
summary: EPUB 3 Parser
|
|
471
486
|
test_files:
|