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
@@ -1,150 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require File.dirname(__FILE__) + '/spec_helper.rb'
3
- require 'rubygems'
4
- require 'nokogiri'
5
-
6
- describe GEPUB::Package do
7
- it 'should be initialized' do
8
- opf = GEPUB::Package.new('/package.opf')
9
- expect(opf.ns_prefix(GEPUB::XMLUtil::OPF_NS)).to eq('xmlns')
10
- end
11
-
12
- context 'parse existing opf' do
13
- it 'should be initialized with opf' do
14
- opf = GEPUB::Package.parse_opf(File.open(File.dirname(__FILE__) + '/fixtures/testdata/test.opf'), '/package.opf')
15
- expect(opf.ns_prefix(GEPUB::XMLUtil::OPF_NS)).to eq('xmlns')
16
- expect(opf['version']).to eq('3.0')
17
- expect(opf['unique-identifier']).to eq('pub-id')
18
- expect(opf['xml:lang']).to eq('ja')
19
- expect(opf['prefix']).to eq('foaf: http://xmlns.com/foaf/spec/ rendition: http://www.idpf.org/vocab/rendition/#')
20
- end
21
- it 'should parse prefix data' do
22
- package = GEPUB::Package.parse_opf(File.open(File.dirname(__FILE__) + '/fixtures/testdata/test.opf'), '/package.opf')
23
- expect(package.prefixes.size).to eq(2)
24
- expect(package.prefixes['foaf']).to eq('http://xmlns.com/foaf/spec/')
25
- expect(package.prefixes['rendition']).to eq('http://www.idpf.org/vocab/rendition/#')
26
-
27
- end
28
-
29
- it 'should parse rendition metadata' do
30
- package = GEPUB::Package.parse_opf(File.open(File.dirname(__FILE__) + '/fixtures/testdata/test.opf'), '/package.opf')
31
- expect(package.rendition_layout).to eq('pre-paginated')
32
- expect(package.rendition_orientation).to eq('auto')
33
- expect(package.rendition_spread).to eq('both')
34
-
35
- end
36
-
37
- end
38
- context 'generate new opf' do
39
- it 'should generate opf' do
40
- opf = GEPUB::Package.new('OEBPS/package.package') {
41
- |package|
42
- package.primary_identifier('http://example.jp', 'BookID', 'url')
43
- package['xml:lang'] = 'ja'
44
-
45
- # metadata add: style 1
46
- package.metadata.add_title('EPUB3 Sample', title_type: GEPUB::TITLE_TYPE::MAIN) {
47
- |title|
48
- title.display_seq = 1
49
- title.file_as = 'Sample EPUB3'
50
- title.add_alternates(
51
- 'en' => 'EPUB3 Sample (Japanese)',
52
- 'el' => 'EPUB3 δείγμα (Ιαπωνικά)',
53
- 'th' => 'EPUB3 ตัวอย่าง (ญี่ปุ่น)')
54
- }
55
- # metadata add: style2
56
- package.metadata.add_title('これでEPUB3もばっちり', title_type: GEPUB::TITLE_TYPE::SUBTITLE).display_seq(2).add_alternates('en' => 'you need nothing but this book!')
57
- package.metadata.add_creator('小嶋智').display_seq(1).add_alternates('en' => 'KOJIMA Satoshi')
58
- package.metadata.add_contributor('電書部').display_seq(1).add_alternates('en' => 'Denshobu')
59
- package.metadata.add_contributor('アサガヤデンショ').display_seq(2).add_alternates('en' => 'Asagaya Densho')
60
- package.metadata.add_contributor('湘南電書鼎談').display_seq(3).add_alternates('en' => 'Shonan Densho Teidan')
61
- package.metadata.add_contributor('電子雑誌トルタル').display_seq(4).add_alternates('en' => 'eMagazine Torutaru')
62
- package.add_item('img/image1.jpg')
63
- package.add_item('img/cover.jpg').add_property('cover-image')
64
- package.ordered {
65
- package.add_item('text/chapter1.xhtml')
66
- package.add_item('text/chapter2.xhtml')
67
- }
68
- }
69
- xml = Nokogiri::XML::Document.parse opf.opf_xml
70
- expect(xml.root.name).to eq('package')
71
- expect(xml.root.namespaces.size).to eq(1)
72
- expect(xml.root.namespaces['xmlns']).to eq(GEPUB::XMLUtil::OPF_NS)
73
- expect(xml.root['version']).to eq('3.0')
74
- expect(xml.root['xml:lang']).to eq('ja')
75
- # TODO: should check all elements
76
- end
77
-
78
- it 'should generate package with prefix attribute' do
79
- opf = GEPUB::Package.new('OEBPS/package.opf') do
80
- |package|
81
- package.primary_identifier('http://example.jp', 'BookID', 'url')
82
- package['xml:lang'] = 'ja'
83
- package.enable_rendition
84
- end
85
- xml = Nokogiri::XML::Document.parse opf.opf_xml
86
- expect(xml.root['prefix']).to eq('rendition: http://www.idpf.org/vocab/rendition/#')
87
- end
88
-
89
- it 'should generate package with rendition attributes' do
90
- opf = GEPUB::Package.new('OEBPS/package.opf') do
91
- |package|
92
- package.rendition_layout = 'pre-paginated'
93
- package.rendition_orientation = 'portlait'
94
- package.rendition_spread = 'landscape'
95
- end
96
- xml = Nokogiri::XML::Document.parse opf.opf_xml
97
- expect(xml.root['prefix']).to eq('rendition: http://www.idpf.org/vocab/rendition/#')
98
- expect(xml.at_xpath("//xmlns:meta[@property='rendition:layout']").content).to eq('pre-paginated')
99
- expect(xml.at_xpath("//xmlns:meta[@property='rendition:orientation']").content).to eq('portlait')
100
- expect(xml.at_xpath("//xmlns:meta[@property='rendition:spread']").content).to eq('landscape')
101
- end
102
-
103
- it 'should handle ibooks version' do
104
- opf = GEPUB::Package.new('OEBPS/package.opf') do
105
- |package|
106
- package.ibooks_version = '1.1.1'
107
- end
108
- xml = Nokogiri::XML::Document.parse opf.opf_xml
109
- expect(xml.root['prefix']).to eq('ibooks: http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/')
110
- expect(xml.at_xpath("//xmlns:meta[@property='ibooks:version']").content).to eq('1.1.1')
111
- end
112
-
113
- it 'should generate opf2.0' do
114
- opf = GEPUB::Package.new('OEBPS/package.opf', { 'version' => '2.0'}) {
115
- |package|
116
- package.primary_identifier('http://example.jp', 'BookID', 'url')
117
- package['xml:lang'] = 'ja'
118
-
119
- # metadata add: style 1
120
- package.metadata.add_title('EPUB3 Sample', title_type: GEPUB::TITLE_TYPE::MAIN) {
121
- |title|
122
- title.display_seq = 1
123
- title.file_as = 'Sample EPUB3'
124
- title.add_alternates(
125
- 'en' => 'EPUB3 Sample (Japanese)',
126
- 'el' => 'EPUB3 δείγμα (Ιαπωνικά)',
127
- 'th' => 'EPUB3 ตัวอย่าง (ญี่ปุ่น)')
128
- }
129
- # metadata add: style2
130
- package.metadata.add_title('これでEPUB3もばっちり', title_type: GEPUB::TITLE_TYPE::SUBTITLE).display_seq(2).add_alternates('en' => 'you need nothing but this book!')
131
- package.metadata.add_creator('小嶋智').display_seq(1).add_alternates('en' => 'KOJIMA Satoshi')
132
- package.metadata.add_contributor('電書部').display_seq(1).add_alternates('en' => 'Denshobu')
133
- package.metadata.add_contributor('アサガヤデンショ').display_seq(2).add_alternates('en' => 'Asagaya Densho')
134
- package.metadata.add_contributor('湘南電書鼎談').display_seq(3).add_alternates('en' => 'Shonan Densho Teidan')
135
- package.metadata.add_contributor('電子雑誌トルタル').display_seq(4).add_alternates('en' => 'eMagazine Torutaru')
136
- package.add_item('img/image1.jpg')
137
- package.ordered {
138
- package.add_item('text/chapter1.xhtml')
139
- package.add_item('text/chapter2.xhtml')
140
- }
141
- }
142
- xml = Nokogiri::XML::Document.parse opf.opf_xml
143
- expect(xml.root.name).to eq('package')
144
- expect(xml.root.namespaces.size).to eq(1)
145
- expect(xml.root.namespaces['xmlns']).to eq(GEPUB::XMLUtil::OPF_NS)
146
- expect(xml.root['version']).to eq('2.0')
147
- expect(xml.root['xml:lang']).to eq('ja')
148
- end
149
- end
150
- end
@@ -1,57 +0,0 @@
1
- require 'coveralls'
2
- Coveralls.wear!
3
-
4
- require "stringio"
5
-
6
- begin
7
- require 'rspec'
8
- rescue LoadError
9
- require 'rubygems' unless ENV['NO_RUBYGEMS']
10
- gem 'rspec'
11
- require 'spec'
12
- end
13
-
14
- RSpec.configure do |config|
15
- # Use color in STDOUT
16
- config.color = true
17
- # Use color not only in STDOUT but also in pagers and files
18
- config.tty = true
19
- # Use the specified formatter
20
- config.formatter = :documentation # :progress, :html, :textmate
21
-
22
- def capture(stream)
23
- begin
24
- stream = stream.to_s
25
- eval "$#{stream} = StringIO.new"
26
- yield
27
- result = eval("$#{stream}").string
28
- ensure
29
- eval "$#{stream} = #{stream.upcase}"
30
- end
31
- result
32
- end
33
-
34
- def epubcheck(epubname)
35
- jar = File.join(File.dirname(__FILE__), 'fixtures/epubcheck-4.1.1/epubcheck.jar')
36
- stdout = capture(:stdout) do
37
- puts %x(java -Duser.language=en -jar #{jar} #{epubname} 2>&1)
38
- end
39
- expect(stdout).to include("No errors or warnings detected.")
40
- end
41
-
42
- end
43
-
44
- require 'rspec/core/formatters/base_text_formatter'
45
- module RSpec
46
- module Core
47
- module Formatters
48
- class DocumentationFormatter < BaseTextFormatter
49
- # def green(text); color(text, "\e[42m") end
50
- def red(text); color(text, "\e[41m") end
51
- # def magenta(text); color(text, "\e[45m") end
52
- end
53
- end
54
- end
55
- end
56
- $:.unshift(File.dirname(__FILE__) + '/../lib')
57
- require 'gepub'
@@ -1,55 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require File.dirname(__FILE__) + '/spec_helper.rb'
3
- require 'rubygems'
4
- require 'nokogiri'
5
-
6
- describe GEPUB::Spine do
7
- context 'parse existing opf' do
8
- before do
9
- @spine = GEPUB::Package.parse_opf(File.open(File.dirname(__FILE__) + '/fixtures/testdata/test.opf'), '/package.opf').instance_eval{ @spine }
10
- end
11
- it 'should be parsed' do
12
- expect(@spine.toc).to eq('ncx')
13
- expect(@spine.page_progression_direction).to eq('ltr')
14
- expect(@spine.itemref_list.size).to eq(4)
15
- expect(@spine.itemref_list[0].idref).to eq('cover')
16
- expect(@spine.itemref_list[0].linear).to eq('no')
17
- expect(@spine.itemref_list[1].idref).to eq('toc')
18
- expect(@spine.itemref_list[1].linear).to eq('yes')
19
- expect(@spine.itemref_list[2].idref).to eq('chap1')
20
- expect(@spine.itemref_list[2].linear).to eq('yes')
21
- expect(@spine.itemref_list[3].idref).to eq('nav')
22
- expect(@spine.itemref_list[3].linear).to eq('no')
23
- end
24
- end
25
- context 'generate new opf' do
26
- it 'should generate xml' do
27
- spine = GEPUB::Spine.new
28
- spine.toc = 'ncx'
29
- spine.push(GEPUB::Item.new('the_id', 'OEBPS/foo.xhtml')).set_linear('no')
30
- builder = Nokogiri::XML::Builder.new { |xml|
31
- xml.package('xmlns' => "http://www.idpf.org/2007/opf",'version' => "3.0",'unique-identifier' => "pub-id",'xml:lang' => "ja") {
32
- spine.to_xml(xml)
33
- }
34
- }
35
- xml = Nokogiri::XML::Document.parse(builder.to_xml)
36
- expect(xml.at_xpath('//xmlns:spine')['toc']).to eq('ncx')
37
- expect(xml.xpath("//xmlns:itemref[@idref='the_id' and @linear='no']").size).to eq(1)
38
- end
39
- it 'should generate xml with property' do
40
- spine = GEPUB::Spine.new
41
- spine.toc = 'ncx'
42
- spine.push(GEPUB::Item.new('the_id', 'OEBPS/foo.xhtml')).page_spread_right
43
- builder = Nokogiri::XML::Builder.new { |xml|
44
- xml.package('xmlns' => "http://www.idpf.org/2007/opf",'version' => "3.0",'unique-identifier' => "pub-id",'xml:lang' => "ja") {
45
- spine.to_xml(xml)
46
- }
47
- }
48
- xml = Nokogiri::XML::Document.parse(builder.to_xml)
49
- expect(xml.at_xpath('//xmlns:spine')['toc']).to eq('ncx')
50
- expect(xml.xpath("//xmlns:itemref[@idref='the_id' and @properties='page-spread-right']").size).to eq(1)
51
- end
52
-
53
- end
54
-
55
- end