gepub 0.6.8.9 → 0.6.9.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/lib/gepub/builder.rb +4 -1
- data/lib/gepub/metadata.rb +22 -1
- data/lib/gepub/package.rb +17 -0
- data/lib/gepub/spine.rb +9 -0
- data/lib/gepub/version.rb +1 -1
- data/spec/builder_spec.rb +21 -0
- data/spec/package_spec.rb +11 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2840238e6aba48557afd114e5aa9fe928429a821
|
4
|
+
data.tar.gz: abe8e9d1089ebe5c49f6b1ba33244a15477d816c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0996df2489524bfcfbeaf277328d959545ed6ab9a8fa532228cdda0e57a7f38c9e87ddb2778a5a5d54811de5c9200a751f35797a3f1b2d6cc5792693bc5b0ed
|
7
|
+
data.tar.gz: 7160c790cb89236d70c467a2df05fe106894c4df43e2d32b06e16c8f23bff7bd0335a264ce463df0faa7ddb13c8b8802dfc2c0a92bc19843abe252da34b010c3
|
data/lib/gepub/builder.rb
CHANGED
@@ -265,7 +265,10 @@ module GEPUB
|
|
265
265
|
raise assert unless ['rtl', 'ltr', 'default'].member? val
|
266
266
|
@book.page_progression_direction = val
|
267
267
|
end
|
268
|
-
|
268
|
+
# specify version for ibooks
|
269
|
+
def ibooks_version(val)
|
270
|
+
@book.ibooks_version=val
|
271
|
+
end
|
269
272
|
# set optional file.
|
270
273
|
# val should be String or Hash.
|
271
274
|
# if val is String, file is read from the File specified by string and stored in EPUB to the path specified by string.
|
data/lib/gepub/metadata.rb
CHANGED
@@ -46,7 +46,10 @@ module GEPUB
|
|
46
46
|
@orientation = metanode
|
47
47
|
when 'rendition:spread'
|
48
48
|
@spread = metanode
|
49
|
+
when 'ibooks:version'
|
50
|
+
@ibooks_version = metanode
|
49
51
|
end
|
52
|
+
|
50
53
|
}
|
51
54
|
}
|
52
55
|
}
|
@@ -62,10 +65,11 @@ module GEPUB
|
|
62
65
|
@namespaces['xmlns:opf'] = OPF_NS if @opf_version.to_f < 3.0
|
63
66
|
@default_layout = 'reflowable'
|
64
67
|
@default_orientation = 'auto'
|
65
|
-
@
|
68
|
+
@default_spread = 'auto'
|
66
69
|
@layout = NilContent
|
67
70
|
@orientation = NilContent
|
68
71
|
@spread = NilContent
|
72
|
+
@ibooks_version = NilContent
|
69
73
|
yield self if block_given?
|
70
74
|
end
|
71
75
|
|
@@ -285,6 +289,23 @@ module GEPUB
|
|
285
289
|
@spread = Meta.new('meta', val, self, { 'property' => 'rendition:spread' })
|
286
290
|
(@content_nodes['meta'] ||= []) << @spread
|
287
291
|
end
|
292
|
+
|
293
|
+
def ibooks_version
|
294
|
+
@ibooks_version.content || ''
|
295
|
+
end
|
296
|
+
|
297
|
+
def ibooks_version=(val)
|
298
|
+
@ibooks_version = Meta.new('meta', val, self, { 'property' => 'ibooks:version' })
|
299
|
+
(@content_nodes['meta'] ||= []) << @ibooks_version
|
300
|
+
end
|
301
|
+
|
302
|
+
def rendition_specified?
|
303
|
+
@layout.content || @orientation.content || @spread.content
|
304
|
+
end
|
305
|
+
|
306
|
+
def ibooks_vocaburaly_specified?
|
307
|
+
@ibooks_version.content
|
308
|
+
end
|
288
309
|
|
289
310
|
private
|
290
311
|
def parse_node(ns, node)
|
data/lib/gepub/package.rb
CHANGED
@@ -21,6 +21,8 @@ module GEPUB
|
|
21
21
|
def_delegators :@metadata, :rendition_orientation=
|
22
22
|
def_delegators :@metadata, :rendition_spread
|
23
23
|
def_delegators :@metadata, :rendition_spread=
|
24
|
+
def_delegators :@metadata, :ibooks_version
|
25
|
+
def_delegators :@metadata, :ibooks_version=
|
24
26
|
|
25
27
|
def_delegators :@spine, :page_progression_direction=
|
26
28
|
def_delegators :@spine, :page_progression_direction
|
@@ -242,6 +244,14 @@ module GEPUB
|
|
242
244
|
def rendition_enabled?
|
243
245
|
@prefixes['rendition'] == 'http://www.idpf.org/vocab/rendition/#'
|
244
246
|
end
|
247
|
+
|
248
|
+
def enable_ibooks_vocabulary
|
249
|
+
@prefixes['ibooks'] = 'http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/'
|
250
|
+
end
|
251
|
+
|
252
|
+
def ibooks_vocabulary_enabled?
|
253
|
+
@prefixes['ibooks'] == 'http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/'
|
254
|
+
end
|
245
255
|
|
246
256
|
def opf_xml
|
247
257
|
if version.to_f < 3.0 || @epub_backward_compat
|
@@ -259,6 +269,13 @@ module GEPUB
|
|
259
269
|
}
|
260
270
|
end
|
261
271
|
end
|
272
|
+
if @metadata.rendition_specified? || @spine.rendition_specified?
|
273
|
+
enable_rendition
|
274
|
+
end
|
275
|
+
if @metadata.ibooks_vocaburaly_specified?
|
276
|
+
enable_ibooks_vocabulary
|
277
|
+
end
|
278
|
+
|
262
279
|
builder = Nokogiri::XML::Builder.new {
|
263
280
|
|xml|
|
264
281
|
if @prefixes.size == 0
|
data/lib/gepub/spine.rb
CHANGED
@@ -46,8 +46,13 @@ module GEPUB
|
|
46
46
|
add_property 'page-spread-left'
|
47
47
|
end
|
48
48
|
|
49
|
+
def rendition_specified?
|
50
|
+
@rendition_specified
|
51
|
+
end
|
52
|
+
|
49
53
|
def set_rendition_param(name, val)
|
50
54
|
add_property "rendition:#{name}-#{val}"
|
55
|
+
@rendition_specified = true
|
51
56
|
end
|
52
57
|
|
53
58
|
def rendition_layout=(val)
|
@@ -127,6 +132,10 @@ module GEPUB
|
|
127
132
|
def <<(item)
|
128
133
|
push item
|
129
134
|
end
|
135
|
+
|
136
|
+
def rendition_specified?
|
137
|
+
@item_refs.select { |itemref| itemref.rendition_specified? }.size > 0
|
138
|
+
end
|
130
139
|
|
131
140
|
def to_xml(builder)
|
132
141
|
builder.spine(@attributes) {
|
data/lib/gepub/version.rb
CHANGED
data/spec/builder_spec.rb
CHANGED
@@ -373,8 +373,29 @@ describe GEPUB::Builder do
|
|
373
373
|
builder.instance_eval{ @book.spine.itemref_list[1].properties[0] }.should == 'rendition:layout-pre-paginated'
|
374
374
|
builder.instance_eval{ @book.spine.itemref_list[1].properties[1] }.should == 'rendition:orientation-landscape'
|
375
375
|
builder.instance_eval{ @book.spine.itemref_list[1].properties[2] }.should == 'rendition:spread-both'
|
376
|
+
builder.instance_eval{
|
377
|
+
xml = Nokogiri::XML::Document.parse @book.opf_xml
|
378
|
+
xml.root['prefix'].should == 'rendition: http://www.idpf.org/vocab/rendition/#'
|
379
|
+
}
|
376
380
|
end
|
377
381
|
|
382
|
+
it 'whould handle ibooks version' do
|
383
|
+
workdir = File.join(File.dirname(__FILE__),'fixtures', 'builder')
|
384
|
+
builder = GEPUB::Builder.new {
|
385
|
+
ibooks_version '1.1.1'
|
386
|
+
resources(:workdir => workdir) {
|
387
|
+
ordered {
|
388
|
+
file('text/cover.xhtml')
|
389
|
+
file('text/memo.txt')
|
390
|
+
}
|
391
|
+
}
|
392
|
+
}
|
393
|
+
builder.instance_eval{
|
394
|
+
xml = Nokogiri::XML::Document.parse @book.opf_xml
|
395
|
+
xml.root['prefix'].should == 'ibooks: http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/'
|
396
|
+
xml.at_xpath("//xmlns:meta[@property='ibooks:version']").content.should == '1.1.1'
|
397
|
+
}
|
398
|
+
end
|
378
399
|
it 'should handle fallback chain' do
|
379
400
|
workdir = File.join(File.dirname(__FILE__),'fixtures', 'builder')
|
380
401
|
builder = GEPUB::Builder.new {
|
data/spec/package_spec.rb
CHANGED
@@ -94,11 +94,22 @@ describe GEPUB::Package do
|
|
94
94
|
package.rendition_spread = 'landscape'
|
95
95
|
end
|
96
96
|
xml = Nokogiri::XML::Document.parse package.opf_xml
|
97
|
+
xml.root['prefix'].should == 'rendition: http://www.idpf.org/vocab/rendition/#'
|
97
98
|
xml.at_xpath("//xmlns:meta[@property='rendition:layout']").content.should == 'pre-paginated'
|
98
99
|
xml.at_xpath("//xmlns:meta[@property='rendition:orientation']").content.should == 'portlait'
|
99
100
|
xml.at_xpath("//xmlns:meta[@property='rendition:spread']").content.should == 'landscape'
|
100
101
|
end
|
101
102
|
|
103
|
+
it 'should handle ibooks version' do
|
104
|
+
package = GEPUB::Package.new('OEBPS/package.opf') do
|
105
|
+
|package|
|
106
|
+
package.ibooks_version = '1.1.1'
|
107
|
+
end
|
108
|
+
xml = Nokogiri::XML::Document.parse package.opf_xml
|
109
|
+
xml.root['prefix'].should == 'ibooks: http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/'
|
110
|
+
xml.at_xpath("//xmlns:meta[@property='ibooks:version']").content.should == '1.1.1'
|
111
|
+
end
|
112
|
+
|
102
113
|
it 'should generate opf2.0' do
|
103
114
|
opf = GEPUB::Package.new('OEBPS/package.opf', { 'version' => '2.0'}) {
|
104
115
|
|opf|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gepub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- KOJIMA Satoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-06-
|
11
|
+
date: 2013-06-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|