gepub 0.6.9.2 → 0.7.0beta1

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.
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") {