gepub 1.0.2 → 1.0.3

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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/gepub.gemspec +1 -2
  4. data/lib/gepub/version.rb +1 -1
  5. metadata +4 -110
  6. data/spec/bindings_spec.rb +0 -34
  7. data/spec/book_spec.rb +0 -307
  8. data/spec/builder_spec.rb +0 -614
  9. data/spec/example_spec.rb +0 -192
  10. data/spec/fixtures/builder/img/cover.jpg +0 -0
  11. data/spec/fixtures/builder/resources/noise.m4 +0 -0
  12. data/spec/fixtures/builder/resources/noise_2.m4a +0 -0
  13. data/spec/fixtures/builder/text/cover.xhtml +0 -11
  14. data/spec/fixtures/builder/text/localresource.conf +0 -2
  15. data/spec/fixtures/builder/text/memo.txt +0 -1
  16. data/spec/fixtures/builder/text/nav.xhtml +0 -12
  17. data/spec/fixtures/epubcheck-4.1.1/CHANGELOG.txt +0 -92
  18. data/spec/fixtures/epubcheck-4.1.1/LICENSE.txt +0 -28
  19. data/spec/fixtures/epubcheck-4.1.1/README.txt +0 -101
  20. data/spec/fixtures/epubcheck-4.1.1/THIRD-PARTY.txt +0 -60
  21. data/spec/fixtures/epubcheck-4.1.1/epubcheck.jar +0 -0
  22. data/spec/fixtures/epubcheck-4.1.1/lib/Saxon-HE-9.8.0-8.jar +0 -0
  23. data/spec/fixtures/epubcheck-4.1.1/lib/animal-sniffer-annotations-1.14.jar +0 -0
  24. data/spec/fixtures/epubcheck-4.1.1/lib/checker-compat-qual-2.0.0.jar +0 -0
  25. data/spec/fixtures/epubcheck-4.1.1/lib/common-image-3.4.1.jar +0 -0
  26. data/spec/fixtures/epubcheck-4.1.1/lib/common-io-3.4.1.jar +0 -0
  27. data/spec/fixtures/epubcheck-4.1.1/lib/common-lang-3.4.1.jar +0 -0
  28. data/spec/fixtures/epubcheck-4.1.1/lib/commons-compress-1.18.jar +0 -0
  29. data/spec/fixtures/epubcheck-4.1.1/lib/error_prone_annotations-2.1.3.jar +0 -0
  30. data/spec/fixtures/epubcheck-4.1.1/lib/guava-24.0-android.jar +0 -0
  31. data/spec/fixtures/epubcheck-4.1.1/lib/imageio-core-3.4.1.jar +0 -0
  32. data/spec/fixtures/epubcheck-4.1.1/lib/imageio-jpeg-3.4.1.jar +0 -0
  33. data/spec/fixtures/epubcheck-4.1.1/lib/imageio-metadata-3.4.1.jar +0 -0
  34. data/spec/fixtures/epubcheck-4.1.1/lib/j2objc-annotations-1.1.jar +0 -0
  35. data/spec/fixtures/epubcheck-4.1.1/lib/jackson-core-asl-1.9.12.jar +0 -0
  36. data/spec/fixtures/epubcheck-4.1.1/lib/jackson-mapper-asl-1.9.12.jar +0 -0
  37. data/spec/fixtures/epubcheck-4.1.1/lib/jing-20120724.0.0.jar +0 -0
  38. data/spec/fixtures/epubcheck-4.1.1/lib/jsr305-1.3.9.jar +0 -0
  39. data/spec/fixtures/epubcheck-4.1.1/lib/sac-1.3.jar +0 -0
  40. data/spec/fixtures/epubcheck-4.1.1/licenses/Apache-2.0.txt +0 -201
  41. data/spec/fixtures/epubcheck-4.1.1/licenses/BSD-3-Clause.txt +0 -27
  42. data/spec/fixtures/epubcheck-4.1.1/licenses/MPL-1.0.txt +0 -360
  43. data/spec/fixtures/epubcheck-4.1.1/licenses/W3C.txt +0 -16
  44. data/spec/fixtures/testdata/0.html +0 -12
  45. data/spec/fixtures/testdata/1.html +0 -10
  46. data/spec/fixtures/testdata/image1.jpg +0 -0
  47. data/spec/fixtures/testdata/package_2_0.opf +0 -23
  48. data/spec/fixtures/testdata/test.opf +0 -69
  49. data/spec/fixtures/testdata/test2.opf +0 -63
  50. data/spec/fixtures/testdata/test_with_bindings.opf +0 -67
  51. data/spec/fixtures/testdata/wasteland-20120118.epub +0 -0
  52. data/spec/gepub_deprectad_api_spec.rb +0 -229
  53. data/spec/gepub_spec.rb +0 -229
  54. data/spec/manifest_spec.rb +0 -36
  55. data/spec/metadata_spec.rb +0 -219
  56. data/spec/package_spec.rb +0 -150
  57. data/spec/spec_helper.rb +0 -57
  58. data/spec/spine_spec.rb +0 -55
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 882c115d013e8ded6bc2d0533afd8f6fd4d0b8e615b515d71059c7b1c162a271
4
- data.tar.gz: daeea3e483e042c505ac5524bf22ef1824b2ca9767a552998a0710058e26ea90
3
+ metadata.gz: ee59e3e012e4f2c44790db3b96a1e8dffbfcf147071c34060e1775efa3ba8df2
4
+ data.tar.gz: a0dcdb5d9ecac223b7c78380920f0cf903d41613f2b25588f030c5dc55b1569c
5
5
  SHA512:
6
- metadata.gz: 1dda127880df03caf552e746c00b54c60cdad4bc0558ef05ad0ad3d19f52ebfaaed4ac7096c375f9d7284c2d95e13a5924f1dcf84e629662907cb6c14b4d4a04
7
- data.tar.gz: f802a5ccf184f0d57d6653dda3f1109522fb93af99d6d3bd42b0cf480f067cda853ee6ff340b2a87bad1453a979b04fb22953c45258731acdf5ef98c39d93c35
6
+ metadata.gz: d11d44838afc08f6906a5e6d78982ce9db7ae7618321ff3e3b388875c5e4aaf564bf6a28744cb09d350e6e533486125151ff136d4fe9ed66d709e22c89458762
7
+ data.tar.gz: a551f8e1330c2d85c0f7b9f41a2ffa03688540ad6ab62c9789f23a6628fff87c7399dee72efc112bd0f32aa154581325e85be726a34a160240e13153dbf19848
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # gepub
2
2
 
3
3
  [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/skoji/gepub?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4
- [<img src="https://secure.travis-ci.org/skoji/gepub.png" />](http://travis-ci.org/skoji/gepub)
5
- [![Coverage Status](https://coveralls.io/repos/skoji/gepub/badge.png?branch=master)](https://coveralls.io/r/skoji/gepub?branch=master)
6
- [![Gem Version](https://badge.fury.io/rb/gepub.png)](http://badge.fury.io/rb/gepub)
4
+ [![Build Status](https://travis-ci.org/skoji/gepub.svg?branch=master)](https://travis-ci.org/skoji/gepub)
5
+ [![Coverage Status](https://coveralls.io/repos/skoji/gepub/badge.svg?branch=master)](https://coveralls.io/r/skoji/gepub?branch=master)
6
+ [![Gem Version](https://badge.fury.io/rb/gepub.svg)](http://badge.fury.io/rb/gepub)
7
7
 
8
8
  * http://rdoc.info/github/skoji/gepub/master/frames
9
9
 
@@ -13,8 +13,7 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.rubyforge_project = "gepub"
15
15
 
16
- s.files = `git ls-files`.split("\n")
17
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.files = `git ls-files`.split("\n").reject { |f| f.match(%r{^spec/}) }
18
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
18
  s.require_paths = ["lib"]
20
19
 
@@ -1,4 +1,4 @@
1
1
  module GEPUB
2
2
  # GEPUB gem version
3
- VERSION = "1.0.2"
3
+ VERSION = "1.0.3"
4
4
  end
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: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - KOJIMA Satoshi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-24 00:00:00.000000000 Z
11
+ date: 2019-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -119,59 +119,6 @@ files:
119
119
  - lib/gepub/spine.rb
120
120
  - lib/gepub/version.rb
121
121
  - lib/gepub/xml_util.rb
122
- - spec/bindings_spec.rb
123
- - spec/book_spec.rb
124
- - spec/builder_spec.rb
125
- - spec/example_spec.rb
126
- - spec/fixtures/builder/img/cover.jpg
127
- - spec/fixtures/builder/resources/noise.m4
128
- - spec/fixtures/builder/resources/noise_2.m4a
129
- - spec/fixtures/builder/text/cover.xhtml
130
- - spec/fixtures/builder/text/localresource.conf
131
- - spec/fixtures/builder/text/memo.txt
132
- - spec/fixtures/builder/text/nav.xhtml
133
- - spec/fixtures/epubcheck-4.1.1/CHANGELOG.txt
134
- - spec/fixtures/epubcheck-4.1.1/LICENSE.txt
135
- - spec/fixtures/epubcheck-4.1.1/README.txt
136
- - spec/fixtures/epubcheck-4.1.1/THIRD-PARTY.txt
137
- - spec/fixtures/epubcheck-4.1.1/epubcheck.jar
138
- - spec/fixtures/epubcheck-4.1.1/lib/Saxon-HE-9.8.0-8.jar
139
- - spec/fixtures/epubcheck-4.1.1/lib/animal-sniffer-annotations-1.14.jar
140
- - spec/fixtures/epubcheck-4.1.1/lib/checker-compat-qual-2.0.0.jar
141
- - spec/fixtures/epubcheck-4.1.1/lib/common-image-3.4.1.jar
142
- - spec/fixtures/epubcheck-4.1.1/lib/common-io-3.4.1.jar
143
- - spec/fixtures/epubcheck-4.1.1/lib/common-lang-3.4.1.jar
144
- - spec/fixtures/epubcheck-4.1.1/lib/commons-compress-1.18.jar
145
- - spec/fixtures/epubcheck-4.1.1/lib/error_prone_annotations-2.1.3.jar
146
- - spec/fixtures/epubcheck-4.1.1/lib/guava-24.0-android.jar
147
- - spec/fixtures/epubcheck-4.1.1/lib/imageio-core-3.4.1.jar
148
- - spec/fixtures/epubcheck-4.1.1/lib/imageio-jpeg-3.4.1.jar
149
- - spec/fixtures/epubcheck-4.1.1/lib/imageio-metadata-3.4.1.jar
150
- - spec/fixtures/epubcheck-4.1.1/lib/j2objc-annotations-1.1.jar
151
- - spec/fixtures/epubcheck-4.1.1/lib/jackson-core-asl-1.9.12.jar
152
- - spec/fixtures/epubcheck-4.1.1/lib/jackson-mapper-asl-1.9.12.jar
153
- - spec/fixtures/epubcheck-4.1.1/lib/jing-20120724.0.0.jar
154
- - spec/fixtures/epubcheck-4.1.1/lib/jsr305-1.3.9.jar
155
- - spec/fixtures/epubcheck-4.1.1/lib/sac-1.3.jar
156
- - spec/fixtures/epubcheck-4.1.1/licenses/Apache-2.0.txt
157
- - spec/fixtures/epubcheck-4.1.1/licenses/BSD-3-Clause.txt
158
- - spec/fixtures/epubcheck-4.1.1/licenses/MPL-1.0.txt
159
- - spec/fixtures/epubcheck-4.1.1/licenses/W3C.txt
160
- - spec/fixtures/testdata/0.html
161
- - spec/fixtures/testdata/1.html
162
- - spec/fixtures/testdata/image1.jpg
163
- - spec/fixtures/testdata/package_2_0.opf
164
- - spec/fixtures/testdata/test.opf
165
- - spec/fixtures/testdata/test2.opf
166
- - spec/fixtures/testdata/test_with_bindings.opf
167
- - spec/fixtures/testdata/wasteland-20120118.epub
168
- - spec/gepub_deprectad_api_spec.rb
169
- - spec/gepub_spec.rb
170
- - spec/manifest_spec.rb
171
- - spec/metadata_spec.rb
172
- - spec/package_spec.rb
173
- - spec/spec_helper.rb
174
- - spec/spine_spec.rb
175
122
  - tools/generate_function.rb
176
123
  homepage: http://github.com/skoji/gepub
177
124
  licenses: []
@@ -191,61 +138,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
138
  - !ruby/object:Gem::Version
192
139
  version: '0'
193
140
  requirements: []
194
- rubygems_version: 3.0.1
141
+ rubygems_version: 3.0.3
195
142
  signing_key:
196
143
  specification_version: 4
197
144
  summary: a generic EPUB library for Ruby.
198
- test_files:
199
- - spec/bindings_spec.rb
200
- - spec/book_spec.rb
201
- - spec/builder_spec.rb
202
- - spec/example_spec.rb
203
- - spec/fixtures/builder/img/cover.jpg
204
- - spec/fixtures/builder/resources/noise.m4
205
- - spec/fixtures/builder/resources/noise_2.m4a
206
- - spec/fixtures/builder/text/cover.xhtml
207
- - spec/fixtures/builder/text/localresource.conf
208
- - spec/fixtures/builder/text/memo.txt
209
- - spec/fixtures/builder/text/nav.xhtml
210
- - spec/fixtures/epubcheck-4.1.1/CHANGELOG.txt
211
- - spec/fixtures/epubcheck-4.1.1/LICENSE.txt
212
- - spec/fixtures/epubcheck-4.1.1/README.txt
213
- - spec/fixtures/epubcheck-4.1.1/THIRD-PARTY.txt
214
- - spec/fixtures/epubcheck-4.1.1/epubcheck.jar
215
- - spec/fixtures/epubcheck-4.1.1/lib/Saxon-HE-9.8.0-8.jar
216
- - spec/fixtures/epubcheck-4.1.1/lib/animal-sniffer-annotations-1.14.jar
217
- - spec/fixtures/epubcheck-4.1.1/lib/checker-compat-qual-2.0.0.jar
218
- - spec/fixtures/epubcheck-4.1.1/lib/common-image-3.4.1.jar
219
- - spec/fixtures/epubcheck-4.1.1/lib/common-io-3.4.1.jar
220
- - spec/fixtures/epubcheck-4.1.1/lib/common-lang-3.4.1.jar
221
- - spec/fixtures/epubcheck-4.1.1/lib/commons-compress-1.18.jar
222
- - spec/fixtures/epubcheck-4.1.1/lib/error_prone_annotations-2.1.3.jar
223
- - spec/fixtures/epubcheck-4.1.1/lib/guava-24.0-android.jar
224
- - spec/fixtures/epubcheck-4.1.1/lib/imageio-core-3.4.1.jar
225
- - spec/fixtures/epubcheck-4.1.1/lib/imageio-jpeg-3.4.1.jar
226
- - spec/fixtures/epubcheck-4.1.1/lib/imageio-metadata-3.4.1.jar
227
- - spec/fixtures/epubcheck-4.1.1/lib/j2objc-annotations-1.1.jar
228
- - spec/fixtures/epubcheck-4.1.1/lib/jackson-core-asl-1.9.12.jar
229
- - spec/fixtures/epubcheck-4.1.1/lib/jackson-mapper-asl-1.9.12.jar
230
- - spec/fixtures/epubcheck-4.1.1/lib/jing-20120724.0.0.jar
231
- - spec/fixtures/epubcheck-4.1.1/lib/jsr305-1.3.9.jar
232
- - spec/fixtures/epubcheck-4.1.1/lib/sac-1.3.jar
233
- - spec/fixtures/epubcheck-4.1.1/licenses/Apache-2.0.txt
234
- - spec/fixtures/epubcheck-4.1.1/licenses/BSD-3-Clause.txt
235
- - spec/fixtures/epubcheck-4.1.1/licenses/MPL-1.0.txt
236
- - spec/fixtures/epubcheck-4.1.1/licenses/W3C.txt
237
- - spec/fixtures/testdata/0.html
238
- - spec/fixtures/testdata/1.html
239
- - spec/fixtures/testdata/image1.jpg
240
- - spec/fixtures/testdata/package_2_0.opf
241
- - spec/fixtures/testdata/test.opf
242
- - spec/fixtures/testdata/test2.opf
243
- - spec/fixtures/testdata/test_with_bindings.opf
244
- - spec/fixtures/testdata/wasteland-20120118.epub
245
- - spec/gepub_deprectad_api_spec.rb
246
- - spec/gepub_spec.rb
247
- - spec/manifest_spec.rb
248
- - spec/metadata_spec.rb
249
- - spec/package_spec.rb
250
- - spec/spec_helper.rb
251
- - spec/spine_spec.rb
145
+ test_files: []
@@ -1,34 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require File.dirname(__FILE__) + '/spec_helper.rb'
3
- require 'rubygems'
4
- require 'nokogiri'
5
-
6
- describe GEPUB::Bindings do
7
- context 'parse existing opf' do
8
- before do
9
- @bindings = GEPUB::Package.parse_opf(File.open(File.dirname(__FILE__) + '/fixtures/testdata/test_with_bindings.opf'), '/package.opf').instance_eval{ @bindings }
10
- end
11
- it 'should be parsed' do
12
- expect(@bindings.media_types.size).to eq(2)
13
- expect(@bindings.media_types[0].handler).to eq('h')
14
- expect(@bindings.media_types[0].media_type).to eq('application/x-foreign-type')
15
- expect(@bindings.media_types[1].handler).to eq('v')
16
- expect(@bindings.media_types[1].media_type).to eq('application/x-other-foreign-type')
17
- end
18
- end
19
-
20
- context 'generate new opf' do
21
- it 'should generate xml' do
22
- bindings = GEPUB::Bindings.new
23
- bindings.add('id1', 'application/x-some-type')
24
- builder = Nokogiri::XML::Builder.new { |xml|
25
- xml.package('xmlns' => "http://www.idpf.org/2007/opf",'version' => "3.0",'unique-identifier' => "pub-id",'xml:lang' => "ja") {
26
- bindings.to_xml(xml)
27
- }
28
- }
29
- xml = Nokogiri::XML::Document.parse(builder.to_xml)
30
- expect(xml.xpath("//xmlns:mediaType[@handler='id1' and @media-type='application/x-some-type']").size).to eq(1)
31
- end
32
- end
33
-
34
- end
@@ -1,307 +0,0 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
2
- require 'rubygems'
3
- require 'nokogiri'
4
-
5
- describe GEPUB::Book do
6
- context 'on creating new book' do
7
- describe 'initialize' do
8
- context 'without parameter' do
9
- it 'returns empty book' do
10
- book = GEPUB::Book.new()
11
- expect(book.path) .to eq('OEBPS/package.opf')
12
- expect(book.version).to eq('3.0')
13
- end
14
- end
15
- context 'with path' do
16
- it 'returns empty book with path' do
17
- book = GEPUB::Book.new('mypath/foo.opf')
18
- expect(book.path) .to eq('mypath/foo.opf')
19
- end
20
- end
21
- context 'with path and attributes' do
22
- it 'returns empty book with path and attributes' do
23
- book = GEPUB::Book.new('mypath/book.opf', {'version' => '2.1'});
24
- expect(book.path) .to eq('mypath/book.opf')
25
- expect(book.version).to eq('2.1')
26
- end
27
- end
28
- end
29
- describe 'version=' do
30
- context 'overwrite version' do
31
- it 'will hold new version' do
32
- GEPUB::Book.new do |book|
33
- book.version = '2.1'
34
- expect(book.version).to eq('2.1')
35
- end
36
- end
37
- end
38
- end
39
- describe 'identifer=' do
40
- context 'set identifier' do
41
- it 'will set unique-identifier and related attributes' do
42
- GEPUB::Book.new do |book|
43
- book.identifier = 'the-book-identifier'
44
- expect(book.identifier).to eq('the-book-identifier')
45
- expect(book.identifier_list[0]['id']).to eq(book.unique_identifier)
46
- expect(book.identifier_list[0].refiner('identifier-type')).to be_nil
47
- end
48
- end
49
- end
50
- end
51
- describe 'primary_identifier' do
52
- context 'set identifier with id and type' do
53
- it 'will set unique-identifier and related attributes' do
54
- book = GEPUB::Book.new do
55
- primary_identifier 'http//example.com/the-identifier', 'MyBookID', 'URL'
56
- end
57
- expect(book.identifier).to eq('http//example.com/the-identifier')
58
- expect(book.unique_identifier).to eq('MyBookID')
59
- expect(book.identifier_list[0]['id']).to eq('MyBookID')
60
- expect(book.identifier_list[0].identifier_type.content).to eq('URL')
61
- end
62
- end
63
- end
64
- describe 'add_identifier' do
65
- context 'add new identifier to new book' do
66
- it 'will set identifier, and not set unique-identifier' do
67
- book = GEPUB::Book.new()
68
- book.add_identifier 'newid'
69
- expect(book.unique_identifier).to be_nil
70
- expect(book.identifier).to be_nil
71
- expect(book.identifier_list[0].content).to eq('newid')
72
- end
73
- end
74
- context 'add new identifier to existing book' do
75
- it 'will set new identifier' do
76
- book = GEPUB::Book.new()
77
- book.identifier = 'theIdentifier'
78
- book.add_identifier 'http://example.jp/additional_identifier', nil, 'URL'
79
- expect(book.identifier).to eq('theIdentifier')
80
- expect(book.identifier_list[1].content).to eq('http://example.jp/additional_identifier')
81
- expect(book.identifier_list[1].identifier_type.content).to eq('URL')
82
- end
83
- end
84
- end
85
- describe 'add_title' do
86
- context 'add title' do
87
- it 'adds new title' do
88
- book = GEPUB::Book.new()
89
- book.title = 'the title'
90
- book.add_title 'new title'
91
- expect(book.title.to_s).to eq('the title')
92
- expect(book.title_list[1].to_s).to eq('new title')
93
- end
94
- end
95
- end
96
- describe 'title =' do
97
- context 'set first title' do
98
- it 'will add new title' do
99
- book = GEPUB::Book.new()
100
- book.title = 'the title'
101
- expect(book.title.to_s).to eq('the title')
102
- end
103
- end
104
- context 'clear and set title' do
105
- it 'will clear title and add new title' do
106
- book = GEPUB::Book.new()
107
- book.add_title 'the title'
108
- book.title = 'new title'
109
- expect(book.title.to_s).to eq('new title')
110
- end
111
- end
112
- end
113
- describe 'title' do
114
- context 'main title is specified' do
115
- it 'returns main title' do
116
- book = GEPUB::Book.new()
117
- book.add_title 'sub title'
118
- book.add_title('the main title', title_type: GEPUB::TITLE_TYPE::MAIN)
119
- expect(book.title.to_s).to eq('the main title')
120
- end
121
- end
122
- context 'display_seq is specified' do
123
- it 'returns first title' do
124
- book = GEPUB::Book.new()
125
- book.add_title 'second title'
126
- book.add_title('first title') do
127
- |title|
128
- title.display_seq = 1
129
- end
130
- expect(book.title.to_s).to eq('first title')
131
- end
132
- end
133
- end
134
- describe 'title_list' do
135
- context 'main title is specified' do
136
- it 'returns titles in defined order' do
137
- book = GEPUB::Book.new()
138
- book.add_title 'sub title'
139
- book.add_title('the main title', title_type: GEPUB::TITLE_TYPE::MAIN)
140
- expect(book.title_list[0].to_s).to eq('sub title')
141
- expect(book.title_list[1].to_s).to eq('the main title')
142
- end
143
- context 'display seq is specified' do
144
- it 'returns titles in display-seq order' do
145
- book = GEPUB::Book.new()
146
- book.add_title 'third title'
147
- book.add_title 'fourth title'
148
- book.add_title 'second title' do
149
- |title|
150
- title.display_seq = 2
151
- end
152
- book.add_title('first title') do
153
- |title|
154
- title.display_seq = 1
155
- end
156
- expect(book.title_list[0].to_s).to eq('first title')
157
- expect(book.title_list[1].to_s).to eq('second title')
158
- expect(book.title_list[2].to_s).to eq('third title')
159
- expect(book.title_list[3].to_s).to eq('fourth title')
160
- end
161
- end
162
- end
163
- end
164
- describe 'add_creator' do
165
- it 'adds new creator' do
166
- book = GEPUB::Book.new()
167
- book.creator = 'the creator'
168
- book.add_creator 'new creator'
169
- expect(book.creator.to_s).to eq('the creator')
170
- expect(book.creator_list[1].to_s).to eq('new creator')
171
- end
172
- end
173
- describe 'creator=' do
174
- it 'set first creator' do
175
- book = GEPUB::Book.new()
176
- book.creator = 'the creator'
177
- expect(book.creator.to_s).to eq('the creator')
178
- end
179
- it 'clear and set creator' do
180
- book = GEPUB::Book.new()
181
- book.creator = 'the creator'
182
- book.creator = 'new creator'
183
- expect(book.creator.to_s).to eq('new creator')
184
- expect(book.creator_list.size).to eq(1)
185
- end
186
- end
187
- describe 'creator' do
188
- context 'display seq is specified' do
189
- it 'shows creator with smallest display-seq' do
190
- book = GEPUB::Book.new()
191
- book.add_creator 'a creator'
192
- book.add_creator('second creator') do
193
- |creator|
194
- creator.display_seq = 2
195
- end
196
- expect(book.creator.to_s).to eq('second creator')
197
- end
198
- end
199
- end
200
-
201
- describe 'creator_list' do
202
- context 'display seq is specified' do
203
- it 'returns creators in display-seq order' do
204
- book = GEPUB::Book.new()
205
- book.add_creator 'a creator'
206
- book.add_creator('second creator') do
207
- |creator|
208
- creator.display_seq = 2
209
- end
210
- book.add_creator 'another creator'
211
- book.add_creator('first creator') do
212
- |creator|
213
- creator.display_seq = 1
214
- end
215
- book.add_creator('third creator') do
216
- |creator|
217
- creator.display_seq = 3
218
- end
219
- expect(book.creator_list[0].to_s).to eq('first creator')
220
- expect(book.creator_list[1].to_s).to eq('second creator')
221
- expect(book.creator_list[2].to_s).to eq('third creator')
222
- expect(book.creator_list[3].to_s).to eq('a creator')
223
- expect(book.creator_list[4].to_s).to eq('another creator')
224
- end
225
- end
226
- end
227
-
228
- # omit tests for setter/getter for contributor, publisher, date etc; these methods use same implementation as creator.
229
-
230
- describe 'set_lastmodified' do
231
- it 'set current time' do
232
- book = GEPUB::Book.new
233
- now = Time.now
234
- book.modified_now
235
- expect((book.lastmodified.content - now).abs).to be < 2
236
- end
237
- it 'set time in string' do
238
- book = GEPUB::Book.new
239
- book.lastmodified(Time.parse('2012-9-12 00:00:00Z'))
240
- expect(book.lastmodified.content).to eq(Time.parse('2012-9-12 00:00:00 UTC'))
241
- end
242
- it 'set time in string : using assign method' do
243
- book = GEPUB::Book.new
244
- book.lastmodified = Time.parse('2012-9-12 00:00:00Z')
245
- expect(book.lastmodified.content).to eq(Time.parse('2012-9-12 00:00:00 UTC'))
246
- end
247
- end
248
- describe 'page_progression_direction=' do
249
- it 'set page_progression_direction' do
250
- book = GEPUB::Book.new
251
- book.page_progression_direction= 'rtl'
252
- expect(book.page_progression_direction).to eq('rtl')
253
- end
254
- end
255
- describe 'add_optional_file' do
256
- context 'add apple specific option file' do
257
- it 'is added to book' do
258
- content = <<-EOF
259
- <?xml version="1.0" encoding="UTF-8"?>
260
- <display_options>
261
- <platform name="*">
262
- <option name="fixed-layout">true</option>
263
- </platform>
264
- </display_options>
265
- EOF
266
- book = GEPUB::Book.new
267
- book.add_optional_file('META-INF/com.apple.ibooks.display-options.xm', StringIO.new(content))
268
-
269
- expect(book.optional_files.size).to eq(1)
270
- expect(book.optional_files['META-INF/com.apple.ibooks.display-options.xm']).to eq(content)
271
- end
272
- end
273
- end
274
- describe 'add_item' do
275
- end
276
- describe 'add_ordered_item' do
277
- end
278
- describe 'ordered' do
279
- end
280
- describe 'write_to_epub_container' do
281
- context 'create typical book' do
282
- end
283
- context 'create very complex book' do
284
- end
285
- end
286
- end
287
- context 'on parsing existing book' do
288
- describe '.parse' do
289
- context 'IO Object' do
290
- it 'loads book and returns GEPUB::Book object' do
291
- filehandle = File.new(File.dirname(__FILE__) + '/fixtures/testdata/wasteland-20120118.epub')
292
- book = GEPUB::Book.parse(filehandle)
293
- expect(book).to be_instance_of GEPUB::Book
294
- expect(book.items.size).to eq 6
295
- expect(book.items['t1'].href).to eq 'wasteland-content.xhtml'
296
- expect(book.items['nav'].href).to eq 'wasteland-nav.xhtml'
297
- expect(book.items['cover'].href).to eq 'wasteland-cover.jpg'
298
- expect(book.items['css'].href).to eq 'wasteland.css'
299
- expect(book.items['css-night'].href).to eq 'wasteland-night.css'
300
- expect(book.items['ncx'].href).to eq 'wasteland.ncx'
301
- expect(book.spine_items.size).to eq 1
302
- expect(book.spine_items[0].href).to eq 'wasteland-content.xhtml'
303
- end
304
- end
305
- end
306
- end
307
- end