gepub 0.6.9.2 → 0.7.0beta1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/gepub/package.rb CHANGED
@@ -5,7 +5,7 @@ require 'forwardable'
5
5
  module GEPUB
6
6
  # Holds data in opf file.
7
7
  class Package
8
- include XMLUtil
8
+ include XMLUtil, DSLUtil
9
9
  extend Forwardable
10
10
  attr_accessor :path, :metadata, :manifest, :spine, :bindings, :epub_backward_compat, :contents_prefix, :prefixes
11
11
  def_delegators :@manifest, :item_by_href
@@ -15,6 +15,7 @@ module GEPUB
15
15
  }.flatten
16
16
  def_delegators :@metadata, :set_lastmodified
17
17
  def_delegators :@metadata, :lastmodified
18
+ def_delegators :@metadata, :modified_now
18
19
  def_delegators :@metadata, :rendition_layout
19
20
  def_delegators :@metadata, :rendition_layout=
20
21
  def_delegators :@metadata, :rendition_orientation
@@ -23,6 +24,8 @@ module GEPUB
23
24
  def_delegators :@metadata, :rendition_spread=
24
25
  def_delegators :@metadata, :ibooks_version
25
26
  def_delegators :@metadata, :ibooks_version=
27
+ def_delegators :@metadata, :ibooks_scroll_axis
28
+ def_delegators :@metadata, :ibooks_scroll_axis=
26
29
 
27
30
  def_delegators :@spine, :page_progression_direction=
28
31
  def_delegators :@spine, :page_progression_direction
@@ -121,8 +124,17 @@ module GEPUB
121
124
  |name|
122
125
  methodbase = name.gsub('-','_').sub('xml:lang', 'lang')
123
126
  define_method(methodbase + '=') { |val| @attributes[name] = val }
124
- define_method('set_' + methodbase) { |val| @attributes[name] = val }
125
- define_method(methodbase) { @attributes[name] }
127
+ define_method('set_' + methodbase) { |val|
128
+ warn "set_#{methodbase} is obsolete. use #{methodbase} instead."
129
+ @attributes[name] = val
130
+ }
131
+ define_method(methodbase, ->(val=UNASSIGNED) {
132
+ if unassigned?(val)
133
+ @attributes[name]
134
+ else
135
+ send(methodbase + '=', val)
136
+ end
137
+ })
126
138
  }
127
139
 
128
140
  def [](x)
@@ -134,21 +146,20 @@ module GEPUB
134
146
  end
135
147
 
136
148
 
137
- def identifier
138
- @metadata.identifier_by_id(unique_identifier)
149
+ def identifier(identifier=UNASSIGNED)
150
+ if unassigned?(identifier)
151
+ @metadata.identifier_by_id(unique_identifier)
152
+ else
153
+ self.identifier=(identifier)
154
+ end
139
155
  end
140
156
 
141
157
  def identifier=(identifier)
142
- set_primary_identifier(identifier, nil, nil)
158
+ primary_identifier(identifier, nil, nil)
143
159
  end
144
160
 
145
- def set_main_id(identifier, id = nil, type = nil)
146
- warn 'set_main_id is deprecated. use set_primary_identifier instead.'
147
- set_primary_identifier(identifier, id, type)
148
- end
149
-
150
- def set_primary_identifier(identifier, id = nil, type = nil)
151
- set_unique_identifier(id || @id_pool.generate_key(:prefix => 'BookId', :without_count => true))
161
+ def primary_identifier(identifier, id = nil, type = nil)
162
+ unique_identifier(id || @id_pool.generate_key(:prefix => 'BookId', :without_count => true))
152
163
  @metadata.add_identifier identifier, unique_identifier, type
153
164
  end
154
165
 
@@ -186,37 +197,19 @@ module GEPUB
186
197
  @manifest.item_list
187
198
  end
188
199
 
189
- def author=(val)
190
- warn 'author= is deprecated. please use #creator'
191
- @metadata.creator= val
192
- end
193
-
194
- def author
195
- warn '#author is deprecated. please use #creator'
196
- @metadata.creator
197
- end
198
-
199
- def specify_cover_image(item)
200
- warn 'specify_cover_image is deprecated. please use Item#cover_image'
201
- item.cover_image
202
- end
203
-
204
- def locale=(val)
205
- warn 'locale= is deprecated. please use #language='
206
- @metadata.language = val
207
- end
208
-
209
- def locale
210
- warn '#locale is deprecated. please use #language'
211
- @metadata.language
212
- end
213
-
214
- #TODO maybe it should be 'epub_version'
215
- def version
216
- @attributes['version']
200
+ def version(val=UNASSIGNED)
201
+ if unassigned?(val)
202
+ @attributes['version']
203
+ else
204
+ @attributes['version'] = val
205
+ @metadata.opf_version = val
206
+ @manifest.opf_version = val
207
+ @spine.opf_version = val
208
+ end
217
209
  end
218
210
 
219
211
  def set_version(val)
212
+ warn 'set_version is obsolete: use verion instead.'
220
213
  @attributes['version'] = val
221
214
  @metadata.opf_version = val
222
215
  @manifest.opf_version = val
@@ -224,19 +217,9 @@ module GEPUB
224
217
  end
225
218
 
226
219
  def version=(val)
227
- set_version(val)
220
+ version(val)
228
221
  end
229
222
 
230
- def epub_version=(val)
231
- warn 'epub_version= is deprecated. please use #version='
232
- @attributes['version'] = val
233
- end
234
-
235
- def epub_version
236
- warn 'epub_version is deprecated. please use #version'
237
- version
238
- end
239
-
240
223
  def enable_rendition
241
224
  @prefixes['rendition'] = 'http://www.idpf.org/vocab/rendition/#'
242
225
  end
@@ -30,14 +30,14 @@ module GEPUB
30
30
  @files_preprocess = {}
31
31
  current_wd = Dir.getwd
32
32
  Dir.chdir(attributes[:workdir]) unless attributes[:workdir].nil?
33
- instance_eval &block
33
+ instance_eval(&block)
34
34
  Dir.chdir current_wd
35
35
  true
36
36
  end
37
37
 
38
38
  def ordered(&block)
39
39
  @book.ordered {
40
- instance_eval &block
40
+ instance_eval(&block)
41
41
  }
42
42
  end
43
43
 
data/lib/gepub/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module GEPUB
2
2
  # GEPUB gem version
3
- VERSION = "0.6.9.2"
3
+ VERSION = "0.7.0beta1"
4
4
  end
data/lib/gepub.rb CHANGED
@@ -1,23 +1,5 @@
1
- if RUBY_VERSION < '1.9'
2
- # hash.key
3
- class Hash
4
- def key(x)
5
- index(x)
6
- end
7
- end
8
- class String
9
- def force_to_bin
10
- self
11
- end
12
- end
13
- else
14
- class String
15
- def force_to_bin
16
- force_encoding('us-ascii')
17
- end
18
- end
19
- end
20
1
  require 'gepub/version'
2
+ require 'gepub/dsl_util'
21
3
  require 'gepub/xml_util'
22
4
  require 'gepub/meta'
23
5
  require 'gepub/datemeta'
@@ -27,6 +9,7 @@ require 'gepub/manifest'
27
9
  require 'gepub/spine'
28
10
  require 'gepub/bindings'
29
11
  require 'gepub/package'
12
+ require 'gepub/mime'
30
13
  require 'gepub/item'
31
14
  require 'gepub/book'
32
15
  require 'gepub/builder_mixin'
@@ -37,3 +20,4 @@ require 'gepub/builder'
37
20
 
38
21
 
39
22
 
23
+
data/spec/book_spec.rb CHANGED
@@ -29,30 +29,31 @@ describe GEPUB::Book do
29
29
  describe 'version=' do
30
30
  context 'overwrite version' do
31
31
  it 'will hold new version' do
32
- book = GEPUB::Book.new()
33
- book.version = '2.1'
34
- expect(book.version).to eq('2.1')
32
+ GEPUB::Book.new do |book|
33
+ book.version = '2.1'
34
+ expect(book.version).to eq('2.1')
35
+ end
35
36
  end
36
37
  end
37
38
  end
38
39
  describe 'identifer=' do
39
40
  context 'set identifier' do
40
41
  it 'will set unique-identifier and related attributes' do
41
- book = GEPUB::Book.new()
42
- book.identifier = 'the-book-identifier'
43
-
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
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
47
48
  end
48
49
  end
49
50
  end
50
- describe 'set_primary_identifier=' do
51
+ describe 'primary_identifier' do
51
52
  context 'set identifier with id and type' do
52
53
  it 'will set unique-identifier and related attributes' do
53
- book = GEPUB::Book.new()
54
- book.set_primary_identifier 'http//example.com/the-identifier', 'MyBookID', 'URL'
55
-
54
+ book = GEPUB::Book.new do
55
+ primary_identifier 'http//example.com/the-identifier', 'MyBookID', 'URL'
56
+ end
56
57
  expect(book.identifier).to eq('http//example.com/the-identifier')
57
58
  expect(book.unique_identifier).to eq('MyBookID')
58
59
  expect(book.identifier_list[0]['id']).to eq('MyBookID')
@@ -230,12 +231,12 @@ describe GEPUB::Book do
230
231
  it 'set current time' do
231
232
  book = GEPUB::Book.new
232
233
  now = Time.now
233
- book.set_lastmodified
234
+ book.modified_now
234
235
  expect((book.lastmodified.content - now).abs).to be < 2
235
236
  end
236
237
  it 'set time in string' do
237
238
  book = GEPUB::Book.new
238
- book.set_lastmodified(Time.parse('2012-9-12 00:00:00Z'))
239
+ book.lastmodified(Time.parse('2012-9-12 00:00:00Z'))
239
240
  expect(book.lastmodified.content).to eq(Time.parse('2012-9-12 00:00:00 UTC'))
240
241
  end
241
242
  end
data/spec/builder_spec.rb CHANGED
@@ -402,12 +402,31 @@ describe GEPUB::Builder do
402
402
  }
403
403
  }
404
404
  }
405
- builder.instance_eval{
406
- xml = Nokogiri::XML::Document.parse @book.opf_xml
407
- xml.root['prefix'].should == 'ibooks: http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/'
408
- xml.at_xpath("//xmlns:meta[@property='ibooks:version']").content.should == '1.1.1'
405
+ xml = builder.instance_eval{
406
+ Nokogiri::XML::Document.parse @book.opf_xml
407
+ }
408
+ expect(xml.root['prefix']).to eq 'ibooks: http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/'
409
+ expect(xml.at_xpath("//xmlns:meta[@property='ibooks:version']").content).to eq '1.1.1'
410
+ end
411
+
412
+ it 'handle ibooks scroll-axis' do
413
+ workdir = File.join(File.dirname(__FILE__),'fixtures', 'builder')
414
+ builder = GEPUB::Builder.new {
415
+ ibooks_scroll_axis :vertical
416
+ resources(:workdir => workdir) {
417
+ ordered {
418
+ file('text/cover.xhtml')
419
+ file('text/memo.txt')
420
+ }
421
+ }
409
422
  }
423
+ xml = builder.instance_eval{
424
+ Nokogiri::XML::Document.parse @book.opf_xml
425
+ }
426
+ expect(xml.root['prefix']).to eq 'ibooks: http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/'
427
+ expect(xml.at_xpath("//xmlns:meta[@property='ibooks:scroll-axis']").content).to eq 'vertical'
410
428
  end
429
+
411
430
  it 'should handle fallback chain' do
412
431
  workdir = File.join(File.dirname(__FILE__),'fixtures', 'builder')
413
432
  builder = GEPUB::Builder.new {
@@ -421,13 +440,13 @@ describe GEPUB::Builder do
421
440
  }
422
441
  }
423
442
  }
424
- builder.instance_eval {
425
- fallbackid = @book.item_by_href('chap3_docbook.xml').fallback
426
- @book.items[fallbackid].href.should == 'chap3.xml'
427
-
428
- fallbackid = @book.items[fallbackid].fallback
429
- @book.items[fallbackid].href.should == 'chap3.xhtml'
443
+ book = builder.instance_eval {
444
+ @book
430
445
  }
446
+ fallbackid = book.item_by_href('chap3_docbook.xml').fallback
447
+ expect(book.items[fallbackid].href).to eq 'chap3.xml'
448
+ fallbackid = book.items[fallbackid].fallback
449
+ expect(book.items[fallbackid].href).to eq 'chap3.xhtml'
431
450
  end
432
451
 
433
452
  it 'should handle fallback chain with fallback_chain_files' do
@@ -438,13 +457,11 @@ describe GEPUB::Builder do
438
457
  fallback_chain_files({'chap3_docbook.xml' => nil}, {'chap3.xml' => nil}, {'chap3.xhtml' => nil})
439
458
  }
440
459
  }
441
- builder.instance_eval {
442
- fallbackid = @book.item_by_href('chap3_docbook.xml').fallback
443
- @book.items[fallbackid].href.should == 'chap3.xml'
444
-
445
- fallbackid = @book.items[fallbackid].fallback
446
- @book.items[fallbackid].href.should == 'chap3.xhtml'
447
- }
460
+ book = builder.instance_eval { @book }
461
+ fallbackid = book.item_by_href('chap3_docbook.xml').fallback
462
+ expect(book.items[fallbackid].href).to eq 'chap3.xml'
463
+ fallbackid = book.items[fallbackid].fallback
464
+ expect(book.items[fallbackid].href).to eq 'chap3.xhtml'
448
465
  end
449
466
 
450
467
  it 'should handle fallback chain with fallback_chain_files in with_media_type' do
@@ -456,16 +473,15 @@ describe GEPUB::Builder do
456
473
  }
457
474
  }
458
475
  }
459
- builder.instance_eval {
460
- @book.item_by_href('chap3_docbook.xml').media_type.should == 'application/docbook+xml'
461
- fallbackid = @book.item_by_href('chap3_docbook.xml').fallback
462
- @book.items[fallbackid].href.should == 'chap3.xml'
463
- @book.items[fallbackid].media_type.should == 'application/z3986-auth+xml'
476
+ book = builder.instance_eval { @book }
477
+ expect(book.item_by_href('chap3_docbook.xml').media_type).to eq 'application/docbook+xml'
478
+ fallbackid = book.item_by_href('chap3_docbook.xml').fallback
479
+ expect(book.items[fallbackid].href).to eq 'chap3.xml'
480
+ expect(book.items[fallbackid].media_type).to eq 'application/z3986-auth+xml'
464
481
 
465
- fallbackid = @book.items[fallbackid].fallback
466
- @book.items[fallbackid].href.should == 'chap3.xhtml'
467
- @book.items[fallbackid].media_type.should == 'application/xhtml+xml'
468
- }
482
+ fallbackid = book.items[fallbackid].fallback
483
+ expect(book.items[fallbackid].href).to eq 'chap3.xhtml'
484
+ expect(book.items[fallbackid].media_type).to eq 'application/xhtml+xml'
469
485
  end
470
486
 
471
487
  it 'should handle fallback chain in spine' do
@@ -485,17 +501,15 @@ describe GEPUB::Builder do
485
501
  }
486
502
  }
487
503
  }
488
- builder.instance_eval {
489
- @book.cleanup
490
- fallbackid = @book.item_by_href('chap3_docbook.xml').fallback
491
- @book.items[fallbackid].href.should == 'chap3.xml'
492
- fallbackid = @book.items[fallbackid].fallback
493
- @book.items[fallbackid].href.should == 'chap3.xhtml'
504
+ book = builder.instance_eval { @book }
505
+ book.cleanup
506
+ fallbackid = book.item_by_href('chap3_docbook.xml').fallback
507
+ expect(book.items[fallbackid].href).to eq 'chap3.xml'
508
+ fallbackid = book.items[fallbackid].fallback
509
+ expect(book.items[fallbackid].href).to eq 'chap3.xhtml'
494
510
 
495
- @book.spine_items.size.should == 1
496
- @book.spine_items[0].href == 'chap3_docbook.xhtml'
497
-
498
- }
511
+ expect(book.spine_items.size).to eq 1
512
+ book.spine_items[0].href == 'chap3_docbook.xhtml'
499
513
  end
500
514
 
501
515
  it 'should create remote-resources' do
@@ -511,7 +525,7 @@ describe GEPUB::Builder do
511
525
  end
512
526
 
513
527
  it 'should handle remote resource URL' do
514
- builder = GEPUB::Builder.new {
528
+ GEPUB::Builder.new {
515
529
  unique_identifier 'uid'
516
530
  resources {
517
531
  file 'http://foo.bar'
data/spec/example_spec.rb CHANGED
@@ -35,11 +35,7 @@ describe 'GEPUB usage' do
35
35
  }
36
36
  epubname = File.join(File.dirname(__FILE__), 'example_test_with_builder_buffer.epub')
37
37
  File.open(epubname, 'wb') { |io| io.write builder.generate_epub_stream.string }
38
- jar = File.join(File.dirname(__FILE__), 'fixtures/epubcheck-3.0.1/epubcheck-3.0.1.jar')
39
- @stdout = capture(:stdout) do
40
- puts %x(java -jar #{jar} #{epubname})
41
- end
42
- expect(@stdout).to include("No errors or warnings detected.")
38
+ epubcheck(epubname)
43
39
  end
44
40
 
45
41
  it 'should generate simple EPUB3 with Builder' do
@@ -70,16 +66,12 @@ describe 'GEPUB usage' do
70
66
  }
71
67
  epubname = File.join(File.dirname(__FILE__), 'example_test_with_builder.epub')
72
68
  builder.generate_epub(epubname)
73
- jar = File.join(File.dirname(__FILE__), 'fixtures/epubcheck-3.0.1/epubcheck-3.0.1.jar')
74
- @stdout = capture(:stdout) do
75
- puts %x(java -jar #{jar} #{epubname})
76
- end
77
- expect(@stdout).to include("No errors or warnings detected.")
69
+ epubcheck(epubname)
78
70
  end
79
71
 
80
72
  it 'should generate simple EPUB3 with rather complicated matadata' do
81
73
  book = GEPUB::Book.new
82
- book.set_primary_identifier('http:/example.jp/bookid_in_url', 'BookID', 'URL')
74
+ book.primary_identifier('http:/example.jp/bookid_in_url', 'BookID', 'URL')
83
75
  book.language = 'ja'
84
76
 
85
77
  # you can add metadata and its property using block
@@ -94,16 +86,16 @@ describe 'GEPUB usage' do
94
86
  'th' => 'GEPUB ตัวอย่าง (ญี่ปุ่น)')
95
87
  }
96
88
  # you can do the same thing using method chain
97
- book.add_title('これはあくまでサンプルです',nil, GEPUB::TITLE_TYPE::SUBTITLE).set_display_seq(2).add_alternates('en' => 'this book is just a sample.')
89
+ book.add_title('これはあくまでサンプルです',nil, GEPUB::TITLE_TYPE::SUBTITLE).display_seq(2).add_alternates('en' => 'this book is just a sample.')
98
90
  book.add_creator('小嶋智') {
99
91
  |creator|
100
92
  creator.display_seq = 1
101
93
  creator.add_alternates('en' => 'KOJIMA Satoshi')
102
94
  }
103
- book.add_contributor('電書部').set_display_seq(1).add_alternates('en' => 'Denshobu')
104
- book.add_contributor('アサガヤデンショ').set_display_seq(2).add_alternates('en' => 'Asagaya Densho')
105
- book.add_contributor('湘南電書鼎談').set_display_seq(3).add_alternates('en' => 'Shonan Densho Teidan')
106
- book.add_contributor('電子雑誌トルタル').set_display_seq(4).add_alternates('en' => 'eMagazine Torutaru')
95
+ book.add_contributor('電書部').display_seq(1).add_alternates('en' => 'Denshobu')
96
+ book.add_contributor('アサガヤデンショ').display_seq(2).add_alternates('en' => 'Asagaya Densho')
97
+ book.add_contributor('湘南電書鼎談').display_seq(3).add_alternates('en' => 'Shonan Densho Teidan')
98
+ book.add_contributor('電子雑誌トルタル').display_seq(4).add_alternates('en' => 'eMagazine Torutaru')
107
99
 
108
100
  imgfile = File.join(File.dirname(__FILE__), 'fixtures', 'testdata', 'image1.jpg')
109
101
  book.add_item('img/image1.jpg',imgfile).cover_image
@@ -116,11 +108,7 @@ describe 'GEPUB usage' do
116
108
  }
117
109
  epubname = File.join(File.dirname(__FILE__), 'example_test.epub')
118
110
  book.generate_epub(epubname)
119
- jar = File.join(File.dirname(__FILE__), 'fixtures/epubcheck-3.0.1/epubcheck-3.0.1.jar')
120
- @stdout = capture(:stdout) do
121
- puts %x(java -jar #{jar} #{epubname})
122
- end
123
- expect(@stdout).to include("No errors or warnings detected.")
111
+ epubcheck(epubname)
124
112
  end
125
113
  end
126
114
  end
data/spec/gepub_spec.rb CHANGED
@@ -168,12 +168,7 @@ EOF
168
168
  it "should generate correct epub" do
169
169
  epubname = File.join(File.dirname(__FILE__), 'testepub.epub')
170
170
  @book.generate_epub(epubname)
171
- jar = File.join(File.dirname(__FILE__), 'fixtures/epubcheck-3.0.1/epubcheck-3.0.1.jar')
172
- @stdout = capture(:stdout) do
173
- puts %x(java -jar #{jar} #{epubname})
174
- end
175
- expect(@stdout).to include("No errors or warnings detected.")
176
-
171
+ epubcheck(epubname)
177
172
  end
178
173
  it "should generate correct epub with buffer" do
179
174
  epubname = File.join(File.dirname(__FILE__), 'testepub_buf.epub')
@@ -181,12 +176,7 @@ EOF
181
176
  |io|
182
177
  io.write @book.generate_epub_stream.string
183
178
  }
184
- jar = File.join(File.dirname(__FILE__), 'fixtures/epubcheck-3.0.1/epubcheck-3.0.1.jar')
185
- @stdout = capture(:stdout) do
186
- puts %x(java -jar #{jar} #{epubname})
187
- end
188
- expect(@stdout).to include("No errors or warnings detected.")
189
-
179
+ epubcheck(epubname)
190
180
  end
191
181
 
192
182
  it "should generate correct epub2.0" do
@@ -207,21 +197,12 @@ EOF
207
197
  'c2')
208
198
  item2.toc_text 'test chapter'
209
199
  @book.generate_epub(epubname)
210
- jar = File.join(File.dirname(__FILE__), 'fixtures/epubcheck-3.0.1/epubcheck-3.0.1.jar')
211
- @stdout = capture(:stdout) do
212
- puts %x(java -jar #{jar} #{epubname})
213
- end
214
- expect(@stdout).to include("No errors or warnings detected.")
215
-
200
+ epubcheck(epubname)
216
201
  end
217
202
  it 'should generate epub with extra file' do
218
203
  epubname = File.join(File.dirname(__FILE__), 'testepub3.epub')
219
204
  @book.add_optional_file('META-INF/foobar.xml', StringIO.new('<foo></foo>'))
220
205
  @book.generate_epub(epubname)
221
- jar = File.join(File.dirname(__FILE__), 'fixtures/epubcheck-3.0.1/epubcheck-3.0.1.jar')
222
- @stdout = capture(:stdout) do
223
- puts %x(java -jar #{jar} #{epubname})
224
- end
225
- expect(@stdout).to include("No errors or warnings detected.")
206
+ epubcheck(epubname)
226
207
  end
227
208
  end
@@ -1,5 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
- p# -*- coding: utf-8 -*-
3
2
  require File.dirname(__FILE__) + '/spec_helper.rb'
4
3
  require 'rubygems'
5
4
  require 'nokogiri'
@@ -49,9 +48,9 @@ describe GEPUB::Metadata do
49
48
 
50
49
  it 'should parse OPF2.0 meta node' do
51
50
  expect(@metadata.oldstyle_meta.size).to eq(1)
52
- @metadata.oldstyle_meta[0].name == 'meta'
53
- @metadata.oldstyle_meta[0]['name'] == 'cover'
54
- @metadata.oldstyle_meta[0]['content'] == 'cover-image'
51
+ expect(@metadata.oldstyle_meta[0].name).to eq 'meta'
52
+ expect(@metadata.oldstyle_meta[0]['name']).to eq 'cover'
53
+ expect(@metadata.oldstyle_meta[0]['content']).to eq 'cover-image'
55
54
  end
56
55
  end
57
56
 
@@ -65,9 +64,9 @@ describe GEPUB::Metadata do
65
64
  end
66
65
  it 'should parse OPF2.0 meta node' do
67
66
  expect(@metadata.oldstyle_meta.size).to eq(1)
68
- @metadata.oldstyle_meta[0].name == 'meta'
69
- @metadata.oldstyle_meta[0]['name'] == 'cover'
70
- @metadata.oldstyle_meta[0]['content'] == 'cover-image'
67
+ expect(@metadata.oldstyle_meta[0].name).to eq 'meta'
68
+ expect(@metadata.oldstyle_meta[0]['name']).to eq 'cover'
69
+ expect(@metadata.oldstyle_meta[0]['content']).to eq 'cover-image'
71
70
  end
72
71
  end
73
72
 
@@ -103,7 +102,7 @@ describe GEPUB::Metadata do
103
102
  it 'should write and read multipletitle with type' do
104
103
  metadata = GEPUB::Metadata.new
105
104
  metadata.add_title('The Main Title', 'maintitle', GEPUB::TITLE_TYPE::MAIN)
106
- metadata.add_title('The Book Series', 'series', GEPUB::TITLE_TYPE::COLLECTION).set_group_position(1)
105
+ metadata.add_title('The Book Series', 'series', GEPUB::TITLE_TYPE::COLLECTION).group_position(1)
107
106
  expect(metadata.title.to_s).to eq('The Main Title')
108
107
  expect(metadata.title.title_type.to_s).to eq('main')
109
108
 
@@ -114,7 +113,7 @@ describe GEPUB::Metadata do
114
113
 
115
114
  it 'should handle alternate-script metadata of creator, not using method chain' do
116
115
  metadata = GEPUB::Metadata.new
117
- metadata.add_creator('TheCreator', 'author', 'aut').set_display_seq(1).set_file_as('Creator, The').add_alternates({ 'ja-JP' => '作成者' })
116
+ metadata.add_creator('TheCreator', 'author', 'aut').display_seq(1).file_as('Creator, The').add_alternates({ 'ja-JP' => '作成者' })
118
117
  expect(metadata.creator.to_s).to eq('TheCreator')
119
118
  expect(metadata.creator.to_s('ja')).to eq('作成者')
120
119
  end
@@ -154,6 +153,14 @@ describe GEPUB::Metadata do
154
153
  expect(metadata.date.to_s).to eq('2012-02-27T20:00:00Z')
155
154
  end
156
155
 
156
+ it 'should handle date with Time object by content = ' do
157
+ metadata = GEPUB::Metadata.new
158
+ a = Time.parse '2012-02-27 20:00:00 UTC'
159
+ metadata.add_date('2011-01-01', 'date')
160
+ metadata.date.content = a
161
+ expect(metadata.date.to_s).to eq('2012-02-27T20:00:00Z')
162
+ end
163
+
157
164
  it 'should handle date with a not W3C-DTF string' do
158
165
  metadata = GEPUB::Metadata.new
159
166
  metadata.add_date('2012-02-28 05:00:00 +0900', 'date')
@@ -173,7 +180,7 @@ describe GEPUB::Metadata do
173
180
 
174
181
  it 'should generate metadata with creator refiner' do
175
182
  metadata = GEPUB::Metadata.new
176
- metadata.add_creator('TheCreator', nil, 'aut').set_display_seq(1).set_file_as('Creator, The').add_alternates({ 'ja-JP' => '作成者' })
183
+ metadata.add_creator('TheCreator', nil, 'aut').display_seq(1).file_as('Creator, The').add_alternates({ 'ja-JP' => '作成者' })
177
184
  builder = Nokogiri::XML::Builder.new { |xml|
178
185
  xml.package('xmlns' => "http://www.idpf.org/2007/opf",'version' => "3.0",'unique-identifier' => "pub-id",'xml:lang' => "ja") {
179
186
  metadata.to_xml(xml)
@@ -191,7 +198,7 @@ describe GEPUB::Metadata do
191
198
 
192
199
  it 'should generate metadata with old style meta tag' do
193
200
  metadata = GEPUB::Metadata.new
194
- metadata.add_creator('TheCreator', nil, 'aut').set_display_seq(1).set_file_as('Creator, The').add_alternates({ 'ja-JP' => '作成者' })
201
+ metadata.add_creator('TheCreator', nil, 'aut').display_seq(1).file_as('Creator, The').add_alternates({ 'ja-JP' => '作成者' })
195
202
  metadata.add_oldstyle_meta(nil, { 'name' => 'cover', 'content' => 'cover.jpg' })
196
203
  builder = Nokogiri::XML::Builder.new { |xml|
197
204
  xml.package('xmlns' => "http://www.idpf.org/2007/opf",'version' => "3.0",'unique-identifier' => "pub-id",'xml:lang' => "ja") {