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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 399a60256947a87d2dc3ada4b348cffeb99ac9d3ed9dcbe5159b4d6ca02d1dff
4
- data.tar.gz: f9ed100e463cc3a60071b7074ebc4a6dd141fac397762697b39b549bb13025f9
3
+ metadata.gz: ae67229ef10676e051fcac1f01f8c96bdfba667cc36c53584475795f3b9dbd82
4
+ data.tar.gz: 798548f2139eb8a807b95cabab3478a1d477b50ee3511d923f3f6a00b343d559
5
5
  SHA512:
6
- metadata.gz: 3f320d4d2ed30d1d2b65db4bf67f4c66dfb4aea66911bd2de9b1b6b8d93e1caa093f4c4cf9c1d595d81744633c4333f5e126c0ae3f6573d9b7fb9c3702987bf3
7
- data.tar.gz: 95cf359e907036d9f4046c4eb7c1bc8eec577c3c78ef31629cae8b9cfd3b8f8c81190ac18b7d639918ccaabc054ca2c5dcddf7f05733c2e05f7b9170463e9bbd
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 install --jobs=$(nproc) --path=deps "${FLAGS[@]}"
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:2.7:
8
- image: ruby:2.7
9
- 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
10
- except:
11
- - tags
12
- cache:
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:3.4
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:3.4
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
@@ -1,5 +1,9 @@
1
1
  = CHANGELOG
2
2
 
3
+ == 0.5.0
4
+
5
+ * Add RuZip adapter
6
+
3
7
  == 0.4.9
4
8
 
5
9
  * Restructure test
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
@@ -4,4 +4,3 @@ require 'rubygems/tasks'
4
4
  task :default => :test
5
5
 
6
6
  Gem::Tasks.new
7
- task :build => :clean
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 'epub/ocf/physical_container/zipruby'
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
@@ -1,5 +1,5 @@
1
1
  module EPUB
2
2
  class Parser
3
- VERSION = "0.4.9"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
@@ -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.9
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: '0'
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: '0'
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.6.7
483
+ rubygems_version: 3.7.2
469
484
  specification_version: 4
470
485
  summary: EPUB 3 Parser
471
486
  test_files: