epubmeta 0.5.0 → 0.6.2
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/README.md +35 -2
- data/lib/epubmeta/models/book.rb +14 -0
- data/lib/epubmeta/parser.rb +6 -4
- metadata +32 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01d97aff642d69f3e17351c6777073a8129467169cebb2fa16b749d106aded05
|
4
|
+
data.tar.gz: 07e34324f0208be8532dcebea818f62c57d6f8affa75d20c2eb54d7daa32d372
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c05f91dec38c79c93041dfc47be55d19baa9a1644ab89d32cc0b1929736c38822385cf21a65b093807e7f89dd67ed961c83738ede492d4a7f81588333b1af353
|
7
|
+
data.tar.gz: 16d3405f68eeac330470b3072d8907633bc8786e76d4524d333d5c8ad4eb474fb5c73ed3fda40b5d8b6ab60ce0bf7eb6acc270f0cf22af98fb6ec912f16b23d1
|
data/README.md
CHANGED
@@ -14,6 +14,39 @@ Which returns a `EPUBMeta::Models::Book` instance, please refer to the [API docu
|
|
14
14
|
|
15
15
|
## Changelog
|
16
16
|
|
17
|
+
**0.6.2** *June 2, 2021*
|
18
|
+
|
19
|
+
* Extract the container parser logic to make it easier to test.
|
20
|
+
* Bump nokogiri to v1.11.4 to incorporate several security issues.
|
21
|
+
|
22
|
+
**0.6.1** *May 11, 2021*
|
23
|
+
|
24
|
+
* Update nokogiri dependency to `>= 1.11.0` to mitigate CVE-2020-26247
|
25
|
+
|
26
|
+
**0.6.0** *May 06, 2020*
|
27
|
+
|
28
|
+
* Support reading rendition property. Accessible via `Book.fixed_layout?`
|
29
|
+
* Update nokogiri dependency to `>= 1.10.8` to mitigate CVE-2020-7595
|
30
|
+
|
31
|
+
**0.5.4** *Februry 04, 2020*
|
32
|
+
|
33
|
+
* Update rubyzip dependency to `~> 1.3.0` to mitigate CVE-2019-16892
|
34
|
+
|
35
|
+
**0.5.3** *November 26, 2019*
|
36
|
+
|
37
|
+
* Update nokogiri dependency to `>= 1.10.4` to mitigate CVE-2019-5477
|
38
|
+
* Update yard dependency to `>= 0.9.20` to mitigate CVE-2019-1020001
|
39
|
+
|
40
|
+
**0.5.2** *October 09, 2018*
|
41
|
+
|
42
|
+
* Remove `redcarpet` dependency
|
43
|
+
* Update gemspec to use correct runtime and development dependency syntax
|
44
|
+
|
45
|
+
**0.5.1** *October 09, 2018*
|
46
|
+
|
47
|
+
* Update rubyzip dependency due to security vulnerability
|
48
|
+
* Fix gemspec dependencies to use up-to-date versions (as found in the Gemfile)
|
49
|
+
|
17
50
|
**0.5.0** *August 10, 2018*
|
18
51
|
|
19
52
|
* Convert module name EPUBMeta
|
@@ -35,6 +68,6 @@ Which returns a `EPUBMeta::Models::Book` instance, please refer to the [API docu
|
|
35
68
|
|
36
69
|
## Copyright
|
37
70
|
|
38
|
-
Copyright (c) 2018 Andrew Roberts.
|
71
|
+
Copyright (c) 2018--2020 Andrew Roberts.
|
39
72
|
Copyright (c) 2012--2014 Christof Dorner.
|
40
|
-
See LICENSE.txt for further details.
|
73
|
+
See LICENSE.txt for further details.
|
data/lib/epubmeta/models/book.rb
CHANGED
@@ -39,6 +39,12 @@ module EPUBMeta
|
|
39
39
|
attr_accessor :identifiers
|
40
40
|
def identifiers; @identifiers || []; end
|
41
41
|
|
42
|
+
# Fixed layout
|
43
|
+
# @return [Boolean]
|
44
|
+
attr_accessor :fixed_layout
|
45
|
+
def fixed_layout; @fixed_layout || false; end
|
46
|
+
alias :fixed_layout? :fixed_layout
|
47
|
+
|
42
48
|
# Source ({http://idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.11 EPUB2 reference})
|
43
49
|
# @return [String]
|
44
50
|
attr_accessor :source
|
@@ -92,6 +98,13 @@ module EPUBMeta
|
|
92
98
|
self.rights = metadata.xpath('.//rights').first.content rescue nil
|
93
99
|
self.drm_protected = parser.drm_protected?
|
94
100
|
self.cover = EPUBMeta::Models::Cover.new(parser)
|
101
|
+
|
102
|
+
rendition_element = metadata.xpath(".//meta[@property='rendition:layout']").first
|
103
|
+
if rendition_element.nil?
|
104
|
+
self.fixed_layout = false
|
105
|
+
else
|
106
|
+
self.fixed_layout = rendition_element.content == "pre-paginated"
|
107
|
+
end
|
95
108
|
end
|
96
109
|
|
97
110
|
|
@@ -111,6 +124,7 @@ module EPUBMeta
|
|
111
124
|
:languages => @languages,
|
112
125
|
:rights => @rights,
|
113
126
|
:drm_protected => @drm_protected,
|
127
|
+
:fixed_layout => @fixed_layout,
|
114
128
|
:cover => @cover,
|
115
129
|
}
|
116
130
|
end
|
data/lib/epubmeta/parser.rb
CHANGED
@@ -25,10 +25,12 @@ module EPUBMeta
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def metadata_path
|
28
|
-
@metadata_path ||=
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
@metadata_path ||= get_full_path(root_document)
|
29
|
+
end
|
30
|
+
|
31
|
+
def get_full_path(container_root_doc)
|
32
|
+
container_root_doc.remove_namespaces!
|
33
|
+
container_root_doc.css('container rootfiles rootfile:first-child').attribute('full-path').content
|
32
34
|
end
|
33
35
|
|
34
36
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epubmeta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Roberts
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -16,33 +16,48 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.2.2
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3.0'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
29
|
+
version: 1.2.2
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: nokogiri
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '1.11'
|
31
40
|
- - ">="
|
32
41
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.4
|
42
|
+
version: 1.11.4
|
34
43
|
type: :runtime
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '1.11'
|
38
50
|
- - ">="
|
39
51
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.4
|
52
|
+
version: 1.11.4
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
54
|
name: rspec
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
44
56
|
requirements:
|
45
57
|
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '2.14'
|
60
|
+
- - ">="
|
46
61
|
- !ruby/object:Gem::Version
|
47
62
|
version: 2.14.1
|
48
63
|
type: :development
|
@@ -50,6 +65,9 @@ dependencies:
|
|
50
65
|
version_requirements: !ruby/object:Gem::Requirement
|
51
66
|
requirements:
|
52
67
|
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '2.14'
|
70
|
+
- - ">="
|
53
71
|
- !ruby/object:Gem::Version
|
54
72
|
version: 2.14.1
|
55
73
|
- !ruby/object:Gem::Dependency
|
@@ -58,42 +76,14 @@ dependencies:
|
|
58
76
|
requirements:
|
59
77
|
- - "~>"
|
60
78
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
79
|
+
version: 0.9.20
|
62
80
|
type: :development
|
63
81
|
prerelease: false
|
64
82
|
version_requirements: !ruby/object:Gem::Requirement
|
65
83
|
requirements:
|
66
84
|
- - "~>"
|
67
85
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: jeweler
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 2.0.1
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 2.0.1
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: redcarpet
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
86
|
+
version: 0.9.20
|
97
87
|
description: Supports EPUB2 and EPUB3 formats.
|
98
88
|
email: andy.roberts.uk@gmail.com
|
99
89
|
executables: []
|
@@ -116,7 +106,7 @@ homepage: https://github.com/andyroberts/epubmeta
|
|
116
106
|
licenses:
|
117
107
|
- MIT
|
118
108
|
metadata: {}
|
119
|
-
post_install_message:
|
109
|
+
post_install_message:
|
120
110
|
rdoc_options: []
|
121
111
|
require_paths:
|
122
112
|
- lib
|
@@ -124,16 +114,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
124
114
|
requirements:
|
125
115
|
- - ">="
|
126
116
|
- !ruby/object:Gem::Version
|
127
|
-
version:
|
117
|
+
version: 2.5.0
|
128
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
119
|
requirements:
|
130
120
|
- - ">="
|
131
121
|
- !ruby/object:Gem::Version
|
132
122
|
version: '0'
|
133
123
|
requirements: []
|
134
|
-
rubyforge_project:
|
135
|
-
rubygems_version: 2.7.
|
136
|
-
signing_key:
|
124
|
+
rubyforge_project:
|
125
|
+
rubygems_version: 2.7.10
|
126
|
+
signing_key:
|
137
127
|
specification_version: 4
|
138
128
|
summary: Extracts metadata information from EPUB files
|
139
129
|
test_files: []
|