ruby-epub 0.2.4 → 0.2.5
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.
- data/lib/ruby-epub.rb +16 -5
- metadata +17 -7
data/lib/ruby-epub.rb
CHANGED
@@ -3,6 +3,8 @@ require 'nokogiri'
|
|
3
3
|
|
4
4
|
class Epub
|
5
5
|
|
6
|
+
BANNED_META = ['office', 'amanuensis']
|
7
|
+
|
6
8
|
def initialize(filename)
|
7
9
|
@zip = Zip::ZipFile.open(filename)
|
8
10
|
opf = get_opf(@zip)
|
@@ -12,7 +14,7 @@ class Epub
|
|
12
14
|
def my_metadata(name)
|
13
15
|
# getter
|
14
16
|
define_singleton_method("#{name}=") do |val|
|
15
|
-
instance_variable_set("@#{name}", val)
|
17
|
+
instance_variable_set("@#{name}", val)
|
16
18
|
end
|
17
19
|
# setter
|
18
20
|
define_singleton_method("#{name}") do
|
@@ -30,16 +32,25 @@ class Epub
|
|
30
32
|
@base_path = tab_path[0] + '/'
|
31
33
|
end
|
32
34
|
opf_file = zipfile.get_input_stream(opf_path)
|
33
|
-
@opf = Nokogiri::XML opf_file
|
34
|
-
@opf.remove_namespaces!
|
35
|
+
@opf = Nokogiri::XML opf_file
|
36
|
+
@opf.remove_namespaces!
|
37
|
+
end
|
38
|
+
|
39
|
+
def banned?(meta)
|
40
|
+
BANNED_META.each do |ban|
|
41
|
+
if meta[0, ban.size] == ban
|
42
|
+
return true
|
43
|
+
end
|
44
|
+
end
|
45
|
+
return false
|
35
46
|
end
|
36
47
|
|
37
48
|
def get_metadata()
|
38
49
|
@opf.at_xpath("//metadata").children.each do |elem|
|
39
50
|
#puts elem.inspect
|
40
51
|
if elem.name != 'text'
|
41
|
-
if elem.name == "meta"
|
42
|
-
name_elem = elem['name'].tr(' ', '_').tr(':', '_')
|
52
|
+
if elem.name == "meta" && !banned?(elem['name'])
|
53
|
+
name_elem = elem['name'].tr(' ', '_').tr(':', '_').tr('.', '_')
|
43
54
|
content_elem = elem['content']
|
44
55
|
else
|
45
56
|
name_elem = elem.name
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-epub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rubyzip2
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: nokogiri
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,7 +37,12 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
description: Extract epub metada
|
37
47
|
email: banux@helheim.net
|
38
48
|
executables: []
|
@@ -61,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
71
|
version: '0'
|
62
72
|
requirements: []
|
63
73
|
rubyforge_project:
|
64
|
-
rubygems_version: 1.8.
|
74
|
+
rubygems_version: 1.8.23
|
65
75
|
signing_key:
|
66
76
|
specification_version: 3
|
67
77
|
summary: Extract epub metada
|