epubinfo 0.3.3 → 0.3.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.
@@ -13,6 +13,6 @@ module EPUBInfo
13
13
  # @return [EPUBInfo::Models::Book] a model representation of the epub file
14
14
  def self.get(path)
15
15
  parser = EPUBInfo::Parser.parse(path)
16
- EPUBInfo::Models::Book.new(parser.metadata_document, parser.drm_protected?)
16
+ EPUBInfo::Models::Book.new(parser)
17
17
  end
18
18
  end
@@ -4,6 +4,7 @@ module EPUBInfo
4
4
  # Titles, array of String instances ({http://idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.1 EPUB2 reference})
5
5
  # @return [Array]
6
6
  attr_accessor :titles
7
+ def titles; @titles || []; end
7
8
 
8
9
  # Creators, array of Person instances ({http://idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.2 EPUB2 reference})
9
10
  # @return [Array]
@@ -58,7 +59,8 @@ module EPUBInfo
58
59
  alias :drm_protected? :drm_protected
59
60
 
60
61
  # Should never be called directly, go through EPUBInfo.get
61
- def initialize(document, drm_protected = false)
62
+ def initialize(parser)
63
+ document = parser.metadata_document
62
64
  return if document.nil?
63
65
  document.remove_namespaces!
64
66
  metadata = document.css('metadata')
@@ -73,7 +75,7 @@ module EPUBInfo
73
75
  self.source = metadata.xpath('.//source').first.content rescue nil
74
76
  self.languages = metadata.xpath('.//language').map(&:content)
75
77
  self.rights = metadata.xpath('.//rights').first.content rescue nil
76
- self.drm_protected = drm_protected
78
+ self.drm_protected = parser.drm_protected?
77
79
  end
78
80
 
79
81
 
@@ -19,11 +19,19 @@ module EPUBInfo
19
19
  private
20
20
 
21
21
  def zip_file
22
- @zip_file ||= Zip::ZipFile.open(@path)
22
+ begin
23
+ @zip_file ||= Zip::ZipFile.open(@path)
24
+ rescue Zip::ZipError => e
25
+ raise NotAnEPUBFileError.new(e)
26
+ end
23
27
  end
24
28
 
25
29
  def root_document
26
- @root_document ||= Nokogiri::XML(zip_file.read('META-INF/container.xml'))
30
+ begin
31
+ @root_document ||= Nokogiri::XML(zip_file.read('META-INF/container.xml'))
32
+ rescue => e
33
+ raise NotAnEPUBFileError.new(e)
34
+ end
27
35
  end
28
36
 
29
37
  def metadata_path
@@ -11,5 +11,7 @@ module EPUBInfo
11
11
  end
12
12
  end
13
13
  end
14
+
15
+ class NotAnEPUBFileError < StandardError; end
14
16
  end
15
17
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epubinfo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
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-05-21 00:00:00.000000000 Z
12
+ date: 2012-06-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rubyzip
16
- requirement: &70289856730780 !ruby/object:Gem::Requirement
16
+ requirement: &70222491690700 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.9.6
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70289856730780
24
+ version_requirements: *70222491690700
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nokogiri
27
- requirement: &70289856729900 !ruby/object:Gem::Requirement
27
+ requirement: &70222491689900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.4.2
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70289856729900
35
+ version_requirements: *70222491689900
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70289856745540 !ruby/object:Gem::Requirement
38
+ requirement: &70222491689420 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.10.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70289856745540
46
+ version_requirements: *70222491689420
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: yard
49
- requirement: &70289856744720 !ruby/object:Gem::Requirement
49
+ requirement: &70222491688700 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.8.1
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70289856744720
57
+ version_requirements: *70222491688700
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
- requirement: &70289856743920 !ruby/object:Gem::Requirement
60
+ requirement: &70222491688020 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.1.3
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70289856743920
68
+ version_requirements: *70222491688020
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
- requirement: &70289856743140 !ruby/object:Gem::Requirement
71
+ requirement: &70222491687420 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 1.8.3
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70289856743140
79
+ version_requirements: *70222491687420
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: simplecov
82
- requirement: &70289856742400 !ruby/object:Gem::Requirement
82
+ requirement: &70222491686800 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70289856742400
90
+ version_requirements: *70222491686800
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: guard
93
- requirement: &70289856741600 !ruby/object:Gem::Requirement
93
+ requirement: &70222491686180 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70289856741600
101
+ version_requirements: *70222491686180
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: guard-rspec
104
- requirement: &70289856740580 !ruby/object:Gem::Requirement
104
+ requirement: &70222491685520 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70289856740580
112
+ version_requirements: *70222491685520
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rb-fsevent
115
- requirement: &70289856739760 !ruby/object:Gem::Requirement
115
+ requirement: &70222491684940 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70289856739760
123
+ version_requirements: *70222491684940
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: growl
126
- requirement: &70289856746320 !ruby/object:Gem::Requirement
126
+ requirement: &70222491704780 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *70289856746320
134
+ version_requirements: *70222491704780
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: fuubar
137
- requirement: &70289856745760 !ruby/object:Gem::Requirement
137
+ requirement: &70222491704160 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,7 +142,7 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *70289856745760
145
+ version_requirements: *70222491704160
146
146
  description: Supports EPUB2 and EPUB3 formats.
147
147
  email: christof@chdorner.com
148
148
  executables: []
@@ -175,7 +175,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
175
175
  version: '0'
176
176
  segments:
177
177
  - 0
178
- hash: 2476552663442480983
178
+ hash: -907416790490823548
179
179
  required_rubygems_version: !ruby/object:Gem::Requirement
180
180
  none: false
181
181
  requirements: