epub-parser 0.1.3 → 0.1.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.
- checksums.yaml +4 -4
- data/.yardopts +5 -2
- data/CHANGELOG.markdown +33 -0
- data/Gemfile +0 -2
- data/README.markdown +15 -6
- data/Rakefile +7 -2
- data/docs/FixedLayout.markdown +98 -0
- data/{wiki/Home.md → docs/Home.markdown} +5 -7
- data/{wiki/Item.md → docs/Item.markdown} +10 -10
- data/epub-parser.gemspec +2 -3
- data/lib/epub.rb +6 -0
- data/lib/epub/content_document/navigation.rb +4 -0
- data/lib/epub/content_document/xhtml.rb +5 -0
- data/lib/epub/parser/content_document.rb +0 -7
- data/lib/epub/parser/ocf.rb +4 -4
- data/lib/epub/parser/publication.rb +4 -0
- data/lib/epub/parser/version.rb +1 -1
- data/lib/epub/publication/fixed_layout.rb +209 -0
- data/lib/epub/publication/package.rb +4 -0
- data/lib/epub/publication/package/manifest.rb +9 -1
- data/lib/epub/publication/package/spine.rb +36 -0
- data/test/test_content_document.rb +32 -0
- data/test/test_fixed_layout.rb +258 -0
- data/test/test_parser_fixed_layout.rb +16 -0
- data/test/test_publication.rb +95 -4
- metadata +15 -21
- data/test/fixtures/book/OPS/CASE-SENSITIVE.xhtml +0 -9
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative 'helper'
|
2
|
+
require 'epub/parser'
|
3
|
+
|
4
|
+
class TestParserFixedLayout < Test::Unit::TestCase
|
5
|
+
def test_using_fixed_layout_is_true_when_rendition_property_in_package_prefix
|
6
|
+
parser = EPUB::Parser::Publication.new(<<OPF, 'dummy/rootfile.opf')
|
7
|
+
<package version="3.0"
|
8
|
+
unique-identifier="pub-id"
|
9
|
+
xmlns="http://www.idpf.org/2007/opf"
|
10
|
+
prefix="rendition: http://www.idpf.org/vocab/rendition/#">
|
11
|
+
</package>
|
12
|
+
OPF
|
13
|
+
package = parser.parse_package
|
14
|
+
assert_true package.using_fixed_layout
|
15
|
+
end
|
16
|
+
end
|
data/test/test_publication.rb
CHANGED
@@ -2,6 +2,8 @@ require_relative 'helper'
|
|
2
2
|
require 'epub/publication'
|
3
3
|
|
4
4
|
class TestPublication < Test::Unit::TestCase
|
5
|
+
include EPUB::Publication
|
6
|
+
|
5
7
|
def test_package_clear_package_attribute_of_submodules_when_attribute_writer_called
|
6
8
|
metadata = EPUB::Publication::Package::Metadata.new
|
7
9
|
another_metadata = EPUB::Publication::Package::Metadata.new
|
@@ -16,21 +18,55 @@ class TestPublication < Test::Unit::TestCase
|
|
16
18
|
|
17
19
|
class TestMetadata < TestPublication
|
18
20
|
def test_meta_refines_setter_connect_refinee_to_the_meta
|
19
|
-
refiner =
|
20
|
-
refinee =
|
21
|
+
refiner = Package::Metadata::Meta.new
|
22
|
+
refinee = Package::Metadata::Meta.new
|
21
23
|
refiner.refines = refinee
|
22
24
|
assert_same refinee.refiners.first, refiner
|
23
25
|
end
|
24
26
|
|
25
27
|
def test_link_refines_setter_connect_refinee_to_the_link
|
26
|
-
refiner =
|
27
|
-
refinee =
|
28
|
+
refiner = Package::Metadata::Link.new
|
29
|
+
refinee = Package::Metadata::Meta.new
|
28
30
|
refiner.refines = refinee
|
29
31
|
assert_same refinee.refiners.first, refiner
|
30
32
|
end
|
33
|
+
|
34
|
+
def test_title_returns_extended_title_when_it_exists
|
35
|
+
extended_title = Package::Metadata::Title.new
|
36
|
+
extended_title.id = 'extended-title'
|
37
|
+
extended_title.content = 'Extended Title'
|
38
|
+
extended_refiner = Package::Metadata::Meta.new
|
39
|
+
extended_refiner.property = 'title-type'
|
40
|
+
extended_refiner.content = 'extended'
|
41
|
+
extended_refiner.refines = extended_title
|
42
|
+
extended_order = Package::Metadata::Meta.new
|
43
|
+
extended_order.property = 'display-seq'
|
44
|
+
extended_order.content = 2
|
45
|
+
extended_order.refines = extended_title
|
46
|
+
|
47
|
+
main_title = Package::Metadata::Title.new
|
48
|
+
main_title.id = 'main-title'
|
49
|
+
main_title.content = 'Main Title'
|
50
|
+
main_refiner = Package::Metadata::Meta.new
|
51
|
+
main_refiner.property = 'title-type'
|
52
|
+
main_refiner.content = 'main'
|
53
|
+
main_refiner.refines = main_title
|
54
|
+
main_order = Package::Metadata::Meta.new
|
55
|
+
main_order.property = 'display-seq'
|
56
|
+
main_order.content = 1
|
57
|
+
main_order.refines = main_title
|
58
|
+
|
59
|
+
package = Package::Metadata.new
|
60
|
+
package.titles << main_title
|
61
|
+
package.titles << extended_title
|
62
|
+
|
63
|
+
assert_equal 'Extended Title', package.title
|
64
|
+
end
|
31
65
|
end
|
32
66
|
|
33
67
|
class TestManifest < TestPublication
|
68
|
+
include EPUB::Publication
|
69
|
+
|
34
70
|
class TestItem < TestManifest
|
35
71
|
def test_content_document_returns_nil_when_not_xhtml_nor_svg
|
36
72
|
item = EPUB::Publication::Package::Manifest::Item.new
|
@@ -47,6 +83,61 @@ class TestPublication < Test::Unit::TestCase
|
|
47
83
|
|
48
84
|
assert_instance_of EPUB::ContentDocument::Navigation, item.content_document
|
49
85
|
end
|
86
|
+
|
87
|
+
def test_can_refer_itemref_which_refers_self
|
88
|
+
itemref = stub!
|
89
|
+
stub(itemref).idref {'item'}
|
90
|
+
item = Package::Manifest::Item.new
|
91
|
+
item.id = 'item'
|
92
|
+
stub(item).manifest.stub!.package.stub!.spine.stub!.itemrefs {[itemref]}
|
93
|
+
|
94
|
+
assert_same itemref, item.itemref
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
class TestSpine < TestPublication
|
100
|
+
class TestItemref < TestSpine
|
101
|
+
def setup
|
102
|
+
super
|
103
|
+
@itemref = Package::Spine::Itemref.new
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_default_page_spread_is_nil
|
107
|
+
assert_nil @itemref.page_spread
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_can_set_page_spread
|
111
|
+
@itemref.page_spread = 'left'
|
112
|
+
|
113
|
+
assert_equal 'left', @itemref.page_spread
|
114
|
+
assert_include @itemref.properties, 'page-spread-left'
|
115
|
+
end
|
116
|
+
|
117
|
+
def test_page_spread_is_exclusive
|
118
|
+
@itemref.page_spread = 'left'
|
119
|
+
@itemref.page_spread = 'right'
|
120
|
+
|
121
|
+
assert_not_include @itemref.properties, 'page-spread-left'
|
122
|
+
end
|
123
|
+
|
124
|
+
def test_can_set_item
|
125
|
+
package = Package.new
|
126
|
+
item = Package::Manifest::Item.new
|
127
|
+
item.id = 'item'
|
128
|
+
manifest = Package::Manifest.new
|
129
|
+
spine = Package::Spine.new
|
130
|
+
manifest << item
|
131
|
+
spine << @itemref
|
132
|
+
package.manifest = manifest
|
133
|
+
package.spine = spine
|
134
|
+
|
135
|
+
@itemref.item = item
|
136
|
+
|
137
|
+
assert_equal 'item', @itemref.idref
|
138
|
+
assert_include spine.items, item
|
139
|
+
assert_same item, @itemref.item
|
140
|
+
end
|
50
141
|
end
|
51
142
|
end
|
52
143
|
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epub-parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- KITAITI Makoto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rubygems-test
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: rake
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -240,14 +226,14 @@ dependencies:
|
|
240
226
|
requirements:
|
241
227
|
- - '='
|
242
228
|
- !ruby/object:Gem::Version
|
243
|
-
version: 1.5.
|
229
|
+
version: 1.5.9
|
244
230
|
type: :runtime
|
245
231
|
prerelease: false
|
246
232
|
version_requirements: !ruby/object:Gem::Requirement
|
247
233
|
requirements:
|
248
234
|
- - '='
|
249
235
|
- !ruby/object:Gem::Version
|
250
|
-
version: 1.5.
|
236
|
+
version: 1.5.9
|
251
237
|
- !ruby/object:Gem::Dependency
|
252
238
|
name: addressable
|
253
239
|
requirement: !ruby/object:Gem::Requirement
|
@@ -276,12 +262,16 @@ files:
|
|
276
262
|
- .gitmodules
|
277
263
|
- .travis.yml
|
278
264
|
- .yardopts
|
265
|
+
- CHANGELOG.markdown
|
279
266
|
- Gemfile
|
280
267
|
- MIT-LICENSE
|
281
268
|
- README.markdown
|
282
269
|
- Rakefile
|
283
270
|
- bin/epub-open
|
284
271
|
- bin/epubinfo
|
272
|
+
- docs/FixedLayout.markdown
|
273
|
+
- docs/Home.markdown
|
274
|
+
- docs/Item.markdown
|
285
275
|
- epub-parser.gemspec
|
286
276
|
- features/epubinfo.feature
|
287
277
|
- features/step_definitions/epubinfo_steps.rb
|
@@ -306,6 +296,7 @@ files:
|
|
306
296
|
- lib/epub/parser/utils.rb
|
307
297
|
- lib/epub/parser/version.rb
|
308
298
|
- lib/epub/publication.rb
|
299
|
+
- lib/epub/publication/fixed_layout.rb
|
309
300
|
- lib/epub/publication/package.rb
|
310
301
|
- lib/epub/publication/package/bindings.rb
|
311
302
|
- lib/epub/publication/package/guide.rb
|
@@ -319,23 +310,23 @@ files:
|
|
319
310
|
- schemas/ocf-container-30.rnc
|
320
311
|
- test/fixtures/book/META-INF/container.xml
|
321
312
|
- test/fixtures/book/OPS/%E6%97%A5%E6%9C%AC%E8%AA%9E.xhtml
|
322
|
-
- test/fixtures/book/OPS/CASE-SENSITIVE.xhtml
|
323
313
|
- test/fixtures/book/OPS/case-sensitive.xhtml
|
324
314
|
- test/fixtures/book/OPS/containing space.xhtml
|
325
315
|
- test/fixtures/book/OPS/containing%20space.xhtml
|
326
316
|
- test/fixtures/book/OPS/nav.xhtml
|
327
317
|
- test/fixtures/book/mimetype
|
328
318
|
- test/helper.rb
|
319
|
+
- test/test_content_document.rb
|
329
320
|
- test/test_epub.rb
|
321
|
+
- test/test_fixed_layout.rb
|
330
322
|
- test/test_parser.rb
|
331
323
|
- test/test_parser_content_document.rb
|
324
|
+
- test/test_parser_fixed_layout.rb
|
332
325
|
- test/test_parser_ocf.rb
|
333
326
|
- test/test_parser_publication.rb
|
334
327
|
- test/test_publication.rb
|
335
328
|
- test/fixtures/book/OPS/ルートファイル.opf
|
336
329
|
- test/fixtures/book/OPS/日本語.xhtml
|
337
|
-
- wiki/Home.md
|
338
|
-
- wiki/Item.md
|
339
330
|
homepage: https://github.com/KitaitiMakoto/epub-parser
|
340
331
|
licenses:
|
341
332
|
- MIT
|
@@ -365,9 +356,12 @@ test_files:
|
|
365
356
|
- features/step_definitions/epubinfo_steps.rb
|
366
357
|
- features/support/env.rb
|
367
358
|
- test/helper.rb
|
359
|
+
- test/test_content_document.rb
|
368
360
|
- test/test_epub.rb
|
361
|
+
- test/test_fixed_layout.rb
|
369
362
|
- test/test_parser.rb
|
370
363
|
- test/test_parser_content_document.rb
|
364
|
+
- test/test_parser_fixed_layout.rb
|
371
365
|
- test/test_parser_ocf.rb
|
372
366
|
- test/test_parser_publication.rb
|
373
367
|
- test/test_publication.rb
|