epub-parser 0.0.9.4 → 0.1.0

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/.gitignore CHANGED
@@ -8,4 +8,5 @@ coverage/*
8
8
  samples/*
9
9
  doc/*
10
10
  NOTE
11
+ test/fixtures/book.epub
11
12
  *~
@@ -1,5 +1,6 @@
1
1
  EPUB Parser
2
2
  ===========
3
+ [![Build Status](https://secure.travis-ci.org/KitaitiMakoto/epub-parser.png?branch=master)](http://travis-ci.org/KitaitiMakoto/epub-parser)
3
4
 
4
5
  INSTALLATION
5
6
  -------
@@ -26,8 +27,10 @@ For more info:
26
27
  end
27
28
 
28
29
  See the [wiki][] for more info.
30
+ Or [API Documentation][rubydoc].
29
31
 
30
- [wiki]:https://github.com/KitaitiMakoto/epub-parser/wiki
32
+ [wiki]: https://github.com/KitaitiMakoto/epub-parser/wiki
33
+ [rubydoc]: http://rubydoc.info/gems/epub-parser/frames
31
34
 
32
35
  REQUIREMENTS
33
36
  ------------
@@ -37,6 +40,7 @@ REQUIREMENTS
37
40
  TODOS
38
41
  -----
39
42
  * Adding tests
43
+ * Modify methods around fallback to check bindings element in the package
40
44
  * Implementing navigation document and so on
41
45
  * Using SAX on parsing
42
46
  * Extracting and organizing common behavior from some classes to modules
data/Rakefile CHANGED
@@ -5,17 +5,17 @@ require 'cucumber'
5
5
  require 'cucumber/rake/task'
6
6
 
7
7
  task :default => :test
8
+ task :test => 'test:default'
8
9
 
9
- Rake::TestTask.new do |task|
10
- task.test_files = FileList['test/**/test_*.rb']
11
- ENV['TESTOPTS'] = '--no-show-detail-immediately --verbose'
12
- end
13
-
14
- YARD::Rake::YardocTask.new
10
+ namespace :test do
11
+ task :default => [:build, :test]
15
12
 
16
- Cucumber::Rake::Task.new
13
+ Rake::TestTask.new do |task|
14
+ task.test_files = FileList['test/**/test_*.rb']
15
+ task.warning = true
16
+ task.options = '--no-show-detail-immediately --verbose'
17
+ end
17
18
 
18
- namespace :sample do
19
19
  desc 'Build the test fixture EPUB'
20
20
  task :build do
21
21
  input_dir = 'test/fixtures/book'
@@ -24,3 +24,8 @@ namespace :sample do
24
24
  sh "epzip #{input_dir}"
25
25
  end
26
26
  end
27
+
28
+
29
+ YARD::Rake::YardocTask.new
30
+
31
+ Cucumber::Rake::Task.new
@@ -25,7 +25,6 @@ Gem::Specification.new do |s|
25
25
  s.add_development_dependency 'rake'
26
26
  s.add_development_dependency 'pry'
27
27
  s.add_development_dependency 'pry-doc'
28
- s.add_development_dependency 'pry-nav'
29
28
  s.add_development_dependency 'test-unit-full'
30
29
  s.add_development_dependency 'simplecov'
31
30
  s.add_development_dependency 'thin'
@@ -6,15 +6,11 @@ module EPUB
6
6
  class Parser
7
7
  class ContentDocument
8
8
  class << self
9
- def parse(root_directory)
10
- new(root_directory).parse
9
+ def parse
10
+ new.parse
11
11
  end
12
12
  end
13
13
 
14
- def initialize(root_directory)
15
- @dir = root_directory
16
- end
17
-
18
14
  def parse
19
15
  raise 'Not implemented yet'
20
16
  end
@@ -30,12 +26,7 @@ module EPUB
30
26
  def parse_navigation(element)
31
27
  nav = EPUB::ContentDocument::Navigation::Nav.new
32
28
  nav.heading = find_heading element
33
-
34
- # to find type, need to use strict xpath for handling namespaces?
35
- # And if so, where should the namespaces be defined?
36
- # nav.type = element['epub:type']
37
- element.namespaces['epub'] = "http://www.idpf.org/2007/ops"
38
- nav.type = element['epub:type']
29
+ nav.type = element['type']
39
30
 
40
31
  nav
41
32
  end
@@ -21,16 +21,17 @@ module EPUB
21
21
  end
22
22
 
23
23
  def parse
24
- EPUB::OCF::MODULES.each do |m|
24
+ container_xml = @zip.fopen(File.join(DIRECTORY, CONTAINER_FILE)).read
25
+ @ocf.container = parse_container(container_xml)
26
+ (EPUB::OCF::MODULES - ['container']).each do |m|
25
27
  @ocf.__send__ "#{m}=", __send__("parse_#{m}")
26
28
  end
27
29
  @ocf
28
30
  end
29
31
 
30
- def parse_container
32
+ def parse_container(xml)
31
33
  container = EPUB::OCF::Container.new
32
- entry = @zip.fopen(File.join(DIRECTORY, CONTAINER_FILE))
33
- doc = Nokogiri.XML(entry.read)
34
+ doc = Nokogiri.XML(xml)
34
35
  doc.xpath('/ocf:container/ocf:rootfiles/ocf:rootfile', EPUB::NAMESPACES).each do |elem|
35
36
  rootfile = EPUB::OCF::Container::Rootfile.new
36
37
  %w[full-path media-type].each do |attr|
@@ -43,18 +44,23 @@ module EPUB
43
44
  end
44
45
 
45
46
  def parse_encryption
47
+ warn "Not implemented: #{self.class}##{__method__}" if $VERBOSE
46
48
  end
47
49
 
48
50
  def parse_manifest
51
+ warn "Not implemented: #{self.class}##{__method__}" if $VERBOSE
49
52
  end
50
53
 
51
54
  def parse_metadata
55
+ warn "Not implemented: #{self.class}##{__method__}" if $VERBOSE
52
56
  end
53
57
 
54
58
  def parse_rights
59
+ warn "Not implemented: #{self.class}##{__method__}" if $VERBOSE
55
60
  end
56
61
 
57
62
  def parse_signatures
63
+ warn "Not implemented: #{self.class}##{__method__}" if $VERBOSE
58
64
  end
59
65
  end
60
66
  end
@@ -9,15 +9,15 @@ module EPUB
9
9
  class Publication
10
10
  class << self
11
11
  def parse(zip_archive, file)
12
- new(zip_archive, file).parse
12
+ opf = zip_archive.fopen(file).read
13
+ new(opf, file).parse
13
14
  end
14
15
  end
15
16
 
16
- def initialize(zip_archive, file)
17
+ def initialize(opf, rootfile)
17
18
  @package = EPUB::Publication::Package.new
18
- @rootfile = Addressable::URI.parse(file)
19
- entry = zip_archive.fopen(file)
20
- @doc = Nokogiri.XML(entry.read)
19
+ @rootfile = Addressable::URI.parse(rootfile)
20
+ @doc = Nokogiri.XML(opf)
21
21
  end
22
22
 
23
23
  def parse
@@ -26,7 +26,7 @@ module EPUB
26
26
  parse_manifest
27
27
  parse_spine
28
28
  parse_guide
29
- # parse_bindings
29
+ parse_bindings
30
30
 
31
31
  @package
32
32
  end
@@ -63,9 +63,6 @@ module EPUB
63
63
 
64
64
  title
65
65
  end
66
- # metadata.titles = collect_dcmes(elem, './dc:title') do |title, e|
67
- # title.content = e.content
68
- # end
69
66
  metadata.titles.each {|t| id_map[t.id] = {metadata: t} if t.respond_to?(:id) && t.id}
70
67
 
71
68
  metadata.languages = elem.xpath('./dc:language', EPUB::NAMESPACES).collect do |e|
@@ -170,7 +167,7 @@ module EPUB
170
167
 
171
168
  def parse_guide
172
169
  guide = @package.guide = EPUB::Publication::Package::Guide.new
173
- elem = @doc.xpath('/opf:package/opf:guide/opf:reference', EPUB::NAMESPACES).each do |ref|
170
+ @doc.xpath('/opf:package/opf:guide/opf:reference', EPUB::NAMESPACES).each do |ref|
174
171
  reference = EPUB::Publication::Package::Guide::Reference.new
175
172
  %w[ type title href ].each do |attr|
176
173
  reference.__send__("#{attr}=", ref[attr])
@@ -183,7 +180,17 @@ module EPUB
183
180
  end
184
181
 
185
182
  def parse_bindings
186
- raise 'still not implemented'
183
+ bindings = @package.bindings = EPUB::Publication::Package::Bindings.new
184
+ @doc.xpath('/opf:package/opf:bindings/opf:mediaType', EPUB::NAMESPACES).each do |elem|
185
+ media_type = EPUB::Publication::Package::Bindings::MediaType.new
186
+ media_type.media_type = elem['media-type']
187
+ items = @package.manifest.items
188
+ index = items.index {|item| item.id == elem['handler']}
189
+ media_type.handler = items[index] if index
190
+ bindings << media_type
191
+ end
192
+
193
+ bindings
187
194
  end
188
195
 
189
196
  def collect_dcmes(elem, selector)
@@ -1,5 +1,5 @@
1
1
  module EPUB
2
2
  class Parser
3
- VERSION = "0.0.9.4"
3
+ VERSION = "0.1.0"
4
4
  end
5
5
  end
@@ -5,7 +5,7 @@ module EPUB
5
5
  class Package
6
6
  attr_accessor :book,
7
7
  :version, :unique_identifier_id, :prefix, :xml_lang, :dir, :id
8
- attr_reader :metadata, :manifest, :spine, :guide, :unique_identifier
8
+ attr_reader :metadata, :manifest, :spine, :guide, :bindings
9
9
  alias lang xml_lang
10
10
  alias lang= xml_lang=
11
11
 
@@ -29,6 +29,11 @@ module EPUB
29
29
  @guide = guide
30
30
  end
31
31
 
32
+ def bindings=(bindings)
33
+ bindings.package = self
34
+ @buindings = bindings
35
+ end
36
+
32
37
  def unique_identifier
33
38
  @metadata.unique_identifier
34
39
  end
@@ -2,7 +2,8 @@ module EPUB
2
2
  module Publication
3
3
  class Package
4
4
  class Bindings
5
- attr_accessor :media_types
5
+ attr_accessor :package,
6
+ :media_types
6
7
 
7
8
  def <<(media_type)
8
9
  @media_types ||= []
@@ -41,21 +41,21 @@ module EPUB
41
41
  end
42
42
 
43
43
  module Refinable
44
+ attr_writer :refiners
45
+
46
+ def refiners
47
+ @refiners ||= []
48
+ end
49
+
44
50
  PROPERTIES = %w[ alternate-script display-seq file-as group-position identifier-type meta-auth role title-type ]
45
51
 
46
52
  PROPERTIES.each do |voc|
47
53
  met = voc.gsub(/-/, '_')
48
- attr_accessor met
54
+ attr_writer met
49
55
  define_method met do
50
- @refiners.select {|refiner| refiner.property == voc}.first
56
+ refiners.select {|refiner| refiner.property == voc}.first
51
57
  end
52
58
  end
53
-
54
- attr_accessor :refiners
55
-
56
- def initialize
57
- @refiners = []
58
- end
59
59
  end
60
60
 
61
61
  class Identifier
@@ -12,13 +12,13 @@
12
12
  </hgroup>
13
13
  <ol>
14
14
  <li><a href="item-1.xhtml">一ページ目</a></li>
15
- <li>
16
- <span>二ページ目</span>
17
- <ol>
18
- <li><a href="item-2.xhtml#section1">第一節</a></li>
19
- <li><a href="item-2.xhtml#section2">第二節</a></li>
20
- </ol>
21
- </li>
15
+ <li>
16
+ <span>二ページ目</span>
17
+ <ol>
18
+ <li><a href="item-2.xhtml#section1">第一節</a></li>
19
+ <li><a href="item-2.xhtml#section2">第二節</a></li>
20
+ </ol>
21
+ </li>
22
22
  </ol>
23
23
  </nav>
24
24
  </div>
@@ -46,33 +46,40 @@
46
46
  </metadata>
47
47
  <manifest id="manifest-id">
48
48
  <item id="nav"
49
- href="nav.xhtml"
50
- media-type="application/xhtml+xml"
51
- properties="nav"/>
49
+ href="nav.xhtml"
50
+ media-type="application/xhtml+xml"
51
+ properties="nav"/>
52
52
  <item id="manifest-item-1"
53
- href="item-1.xhtml"
54
- media-type="application/pdf"
55
- properties="property1 property2 property3"/>
53
+ href="item-1.xhtml"
54
+ media-type="application/pdf"
55
+ properties="property1 property2 property3"/>
56
56
  <item id="manifest-item-2"
57
- href="item-2.xhtml"
58
- media-type="application/pdf"
59
- fallback="manifest-item-fallback"/>
57
+ href="item-2.xhtml"
58
+ media-type="application/pdf"
59
+ fallback="manifest-item-fallback"/>
60
+ <item id="impl"
61
+ href="impl.xhtml"
62
+ media-type="application/xhtml+xml"
63
+ properties="scripted"/>
64
+ <item id="slideshow"
65
+ href="slideshow.xml"
66
+ media-type="application/x-demo-slideshow"/>
60
67
  <item id="manifest-item-fallback"
61
- href="fallback.xhtml"
62
- media-type="image/svg+xml"
63
- fallback="manifest-item-fallback2"/>
68
+ href="fallback.xhtml"
69
+ media-type="image/svg+xml"
70
+ fallback="manifest-item-fallback2"/>
64
71
  <item id="manifest-item-fallback2"
65
- href="fallback2.xhtml"
66
- media-type="application/xhtml+xml"/>
72
+ href="fallback2.xhtml"
73
+ media-type="application/xhtml+xml"/>
67
74
  <item id="cover"
68
- href="cover.xhtml"
69
- media-type="application/xhtml+xml"/>
75
+ href="cover.xhtml"
76
+ media-type="application/xhtml+xml"/>
70
77
  <item id="internal-css"
71
- href="special.css"
72
- media-type="text/css"/>
78
+ href="special.css"
79
+ media-type="text/css"/>
73
80
  <item id="external-css"
74
- href="http://example.net/stylesheets/common.css"
75
- media-type="text/css"/>
81
+ href="http://example.net/stylesheets/common.css"
82
+ media-type="text/css"/>
76
83
  </manifest>
77
84
  <spine>
78
85
  <itemref idref="nav"/>
@@ -82,4 +89,8 @@
82
89
  <guide>
83
90
  <reference type="cover" href="cover.xhtml#start" title="カバー"/>
84
91
  </guide>
92
+ <bindings>
93
+ <mediaType handler="impl"
94
+ media-type="application/x-demo-slideshow"/>
95
+ </bindings>
85
96
  </package>
@@ -1,8 +1,6 @@
1
1
  require 'simplecov'
2
2
  SimpleCov.start do
3
- add_filter '/test|vendor/'
3
+ add_filter '/test|deps/'
4
4
  end
5
5
 
6
- gem 'test-unit'
7
- require 'test/unit'
8
- require 'test/unit/rr'
6
+ require 'test/unit/full'
@@ -1,10 +1,10 @@
1
- require File.expand_path('helper', File.dirname(__FILE__))
1
+ require_relative 'helper'
2
2
  require 'epub/parser/content_document'
3
3
 
4
4
  class TestParserContentDocument < Test::Unit::TestCase
5
5
  def setup
6
6
  @dir = 'test/fixtures/book'
7
- @parser = EPUB::Parser::ContentDocument.new @dir
7
+ @parser = EPUB::Parser::ContentDocument.new
8
8
  end
9
9
 
10
10
  def test_parse_navigations
@@ -13,5 +13,6 @@ class TestParserContentDocument < Test::Unit::TestCase
13
13
 
14
14
  assert_equal 1, navs.length
15
15
  assert_equal 'Table of Contents', navs.first.heading
16
+ assert_equal 'toc', navs.first.type
16
17
  end
17
18
  end
@@ -7,6 +7,7 @@ class TestParserOCF < Test::Unit::TestCase
7
7
  file = 'test/fixtures/book.epub'
8
8
  @zip = Zip::Archive.open(file)
9
9
  @parser = EPUB::Parser::OCF.new(@zip)
10
+ @container_xml = @zip.fopen('META-INF/container.xml').read
10
11
  end
11
12
 
12
13
  def teardown
@@ -14,11 +15,11 @@ class TestParserOCF < Test::Unit::TestCase
14
15
  end
15
16
 
16
17
  def test_parsed_container_has_one_rootfile
17
- assert_equal 1, @parser.parse_container.rootfiles.length
18
+ assert_equal 1, @parser.parse_container(@container_xml).rootfiles.length
18
19
  end
19
20
 
20
21
  def test_parse_container_can_find_primary_rootfile
21
- container = @parser.parse_container
22
+ container = @parser.parse_container(@container_xml)
22
23
 
23
24
  assert_equal 'OPS/ルートファイル.opf', container.rootfile.full_path
24
25
  end
@@ -5,9 +5,10 @@ require 'epub/parser/publication'
5
5
  class TestParserPublication < Test::Unit::TestCase
6
6
  def setup
7
7
  file = 'test/fixtures/book.epub'
8
- root_file = 'OPS/ルートファイル.opf'
8
+ rootfile = 'OPS/ルートファイル.opf'
9
9
  @zip = Zip::Archive.open(file)
10
- @parser = EPUB::Parser::Publication.new(@zip, root_file)
10
+ opf = @zip.fopen(rootfile).read
11
+ @parser = EPUB::Parser::Publication.new(opf, rootfile)
11
12
  @package = @parser.parse_package
12
13
  end
13
14
 
@@ -44,8 +45,8 @@ class TestParserPublication < Test::Unit::TestCase
44
45
  @manifest = @parser.parse_manifest
45
46
  end
46
47
 
47
- def test_manifest_has_8_items
48
- assert_equal 8, @manifest.items.length
48
+ def test_manifest_has_10_items
49
+ assert_equal 10, @manifest.items.length
49
50
  end
50
51
 
51
52
  def test_item_has_relative_path_as_iri_attribute
@@ -137,4 +138,33 @@ class TestParserPublication < Test::Unit::TestCase
137
138
  assert_instance_of EPUB::Publication::Package::Manifest::Item, @guide.cover.item
138
139
  end
139
140
  end
141
+
142
+ class TestParseBindings < TestParserPublication
143
+ def setup
144
+ super
145
+ @package.manifest = @parser.parse_manifest
146
+ @bindings = @parser.parse_bindings
147
+ @bindings.package = @package
148
+ end
149
+
150
+ def test_has_one_bindings
151
+ assert @bindings
152
+ end
153
+
154
+ def test_bindings_has_one_media_type
155
+ assert_equal 1, @bindings.media_types.length
156
+ end
157
+
158
+ def test_media_type_has_media_type_attribute
159
+ assert_equal 'application/x-demo-slideshow', @bindings.media_types.first.media_type
160
+ end
161
+
162
+ def test_media_type_has_handler_attribute
163
+ assert_not_nil @bindings.media_types.first.handler
164
+ end
165
+
166
+ def test_media_type_refers_item_as_handler
167
+ assert_kind_of EPUB::Publication::Package::Manifest::Item, @bindings.media_types.first.handler
168
+ end
169
+ end
140
170
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epub-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9.4
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-19 00:00:00.000000000Z
12
+ date: 2012-09-23 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rubygems-test
16
- requirement: &7769480 !ruby/object:Gem::Requirement
16
+ requirement: &14556200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *7769480
24
+ version_requirements: *14556200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &7768020 !ruby/object:Gem::Requirement
27
+ requirement: &14555160 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *7768020
35
+ version_requirements: *14555160
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: pry
38
- requirement: &7766940 !ruby/object:Gem::Requirement
38
+ requirement: &14553880 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *7766940
46
+ version_requirements: *14553880
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: pry-doc
49
- requirement: &7784680 !ruby/object:Gem::Requirement
49
+ requirement: &14552820 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,21 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *7784680
58
- - !ruby/object:Gem::Dependency
59
- name: pry-nav
60
- requirement: &7783400 !ruby/object:Gem::Requirement
61
- none: false
62
- requirements:
63
- - - ! '>='
64
- - !ruby/object:Gem::Version
65
- version: '0'
66
- type: :development
67
- prerelease: false
68
- version_requirements: *7783400
57
+ version_requirements: *14552820
69
58
  - !ruby/object:Gem::Dependency
70
59
  name: test-unit-full
71
- requirement: &7782020 !ruby/object:Gem::Requirement
60
+ requirement: &14835840 !ruby/object:Gem::Requirement
72
61
  none: false
73
62
  requirements:
74
63
  - - ! '>='
@@ -76,10 +65,10 @@ dependencies:
76
65
  version: '0'
77
66
  type: :development
78
67
  prerelease: false
79
- version_requirements: *7782020
68
+ version_requirements: *14835840
80
69
  - !ruby/object:Gem::Dependency
81
70
  name: simplecov
82
- requirement: &7780700 !ruby/object:Gem::Requirement
71
+ requirement: &14832360 !ruby/object:Gem::Requirement
83
72
  none: false
84
73
  requirements:
85
74
  - - ! '>='
@@ -87,10 +76,10 @@ dependencies:
87
76
  version: '0'
88
77
  type: :development
89
78
  prerelease: false
90
- version_requirements: *7780700
79
+ version_requirements: *14832360
91
80
  - !ruby/object:Gem::Dependency
92
81
  name: thin
93
- requirement: &7780040 !ruby/object:Gem::Requirement
82
+ requirement: &14761180 !ruby/object:Gem::Requirement
94
83
  none: false
95
84
  requirements:
96
85
  - - ! '>='
@@ -98,10 +87,10 @@ dependencies:
98
87
  version: '0'
99
88
  type: :development
100
89
  prerelease: false
101
- version_requirements: *7780040
90
+ version_requirements: *14761180
102
91
  - !ruby/object:Gem::Dependency
103
92
  name: yard
104
- requirement: &7779380 !ruby/object:Gem::Requirement
93
+ requirement: &14760040 !ruby/object:Gem::Requirement
105
94
  none: false
106
95
  requirements:
107
96
  - - ! '>='
@@ -109,10 +98,10 @@ dependencies:
109
98
  version: '0'
110
99
  type: :development
111
100
  prerelease: false
112
- version_requirements: *7779380
101
+ version_requirements: *14760040
113
102
  - !ruby/object:Gem::Dependency
114
103
  name: gem-man
115
- requirement: &7778660 !ruby/object:Gem::Requirement
104
+ requirement: &14758040 !ruby/object:Gem::Requirement
116
105
  none: false
117
106
  requirements:
118
107
  - - ! '>='
@@ -120,10 +109,10 @@ dependencies:
120
109
  version: '0'
121
110
  type: :development
122
111
  prerelease: false
123
- version_requirements: *7778660
112
+ version_requirements: *14758040
124
113
  - !ruby/object:Gem::Dependency
125
114
  name: ronn
126
- requirement: &7778020 !ruby/object:Gem::Requirement
115
+ requirement: &14756820 !ruby/object:Gem::Requirement
127
116
  none: false
128
117
  requirements:
129
118
  - - ! '>='
@@ -131,10 +120,10 @@ dependencies:
131
120
  version: '0'
132
121
  type: :development
133
122
  prerelease: false
134
- version_requirements: *7778020
123
+ version_requirements: *14756820
135
124
  - !ruby/object:Gem::Dependency
136
125
  name: epzip
137
- requirement: &7777340 !ruby/object:Gem::Requirement
126
+ requirement: &14791880 !ruby/object:Gem::Requirement
138
127
  none: false
139
128
  requirements:
140
129
  - - ! '>='
@@ -142,10 +131,10 @@ dependencies:
142
131
  version: '0'
143
132
  type: :development
144
133
  prerelease: false
145
- version_requirements: *7777340
134
+ version_requirements: *14791880
146
135
  - !ruby/object:Gem::Dependency
147
136
  name: epubcheck
148
- requirement: &7795800 !ruby/object:Gem::Requirement
137
+ requirement: &14790180 !ruby/object:Gem::Requirement
149
138
  none: false
150
139
  requirements:
151
140
  - - ! '>='
@@ -153,10 +142,10 @@ dependencies:
153
142
  version: '0'
154
143
  type: :development
155
144
  prerelease: false
156
- version_requirements: *7795800
145
+ version_requirements: *14790180
157
146
  - !ruby/object:Gem::Dependency
158
147
  name: epub_validator
159
- requirement: &7795140 !ruby/object:Gem::Requirement
148
+ requirement: &14789060 !ruby/object:Gem::Requirement
160
149
  none: false
161
150
  requirements:
162
151
  - - ! '>='
@@ -164,10 +153,10 @@ dependencies:
164
153
  version: '0'
165
154
  type: :development
166
155
  prerelease: false
167
- version_requirements: *7795140
156
+ version_requirements: *14789060
168
157
  - !ruby/object:Gem::Dependency
169
158
  name: aruba
170
- requirement: &7794540 !ruby/object:Gem::Requirement
159
+ requirement: &14786300 !ruby/object:Gem::Requirement
171
160
  none: false
172
161
  requirements:
173
162
  - - ! '>='
@@ -175,10 +164,10 @@ dependencies:
175
164
  version: '0'
176
165
  type: :development
177
166
  prerelease: false
178
- version_requirements: *7794540
167
+ version_requirements: *14786300
179
168
  - !ruby/object:Gem::Dependency
180
169
  name: enumerabler
181
- requirement: &7793960 !ruby/object:Gem::Requirement
170
+ requirement: &13965260 !ruby/object:Gem::Requirement
182
171
  none: false
183
172
  requirements:
184
173
  - - ! '>='
@@ -186,10 +175,10 @@ dependencies:
186
175
  version: '0'
187
176
  type: :runtime
188
177
  prerelease: false
189
- version_requirements: *7793960
178
+ version_requirements: *13965260
190
179
  - !ruby/object:Gem::Dependency
191
180
  name: zipruby
192
- requirement: &7793360 !ruby/object:Gem::Requirement
181
+ requirement: &13963160 !ruby/object:Gem::Requirement
193
182
  none: false
194
183
  requirements:
195
184
  - - ! '>='
@@ -197,10 +186,10 @@ dependencies:
197
186
  version: '0'
198
187
  type: :runtime
199
188
  prerelease: false
200
- version_requirements: *7793360
189
+ version_requirements: *13963160
201
190
  - !ruby/object:Gem::Dependency
202
191
  name: nokogiri
203
- requirement: &7792560 !ruby/object:Gem::Requirement
192
+ requirement: &13962300 !ruby/object:Gem::Requirement
204
193
  none: false
205
194
  requirements:
206
195
  - - ! '>='
@@ -208,10 +197,10 @@ dependencies:
208
197
  version: '0'
209
198
  type: :runtime
210
199
  prerelease: false
211
- version_requirements: *7792560
200
+ version_requirements: *13962300
212
201
  - !ruby/object:Gem::Dependency
213
202
  name: addressable
214
- requirement: &7791700 !ruby/object:Gem::Requirement
203
+ requirement: &13960940 !ruby/object:Gem::Requirement
215
204
  none: false
216
205
  requirements:
217
206
  - - ! '>='
@@ -219,7 +208,7 @@ dependencies:
219
208
  version: '0'
220
209
  type: :runtime
221
210
  prerelease: false
222
- version_requirements: *7791700
211
+ version_requirements: *13960940
223
212
  description: Parse EPUB 3 book loosely
224
213
  email:
225
214
  - KitaitiMakoto@gmail.com
@@ -265,7 +254,6 @@ files:
265
254
  - schemas/epub-nav-30.sch
266
255
  - schemas/epub-xhtml-30.sch
267
256
  - schemas/ocf-container-30.rnc
268
- - test/fixtures/book.epub
269
257
  - test/fixtures/book/META-INF/container.xml
270
258
  - test/fixtures/book/OPS/nav.xhtml
271
259
  - test/fixtures/book/mimetype
@@ -291,7 +279,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
291
279
  version: '0'
292
280
  segments:
293
281
  - 0
294
- hash: 1400943078224581489
282
+ hash: -473258669036225186
295
283
  required_rubygems_version: !ruby/object:Gem::Requirement
296
284
  none: false
297
285
  requirements:
@@ -300,7 +288,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
300
288
  version: '0'
301
289
  segments:
302
290
  - 0
303
- hash: 1400943078224581489
291
+ hash: -473258669036225186
304
292
  requirements: []
305
293
  rubyforge_project:
306
294
  rubygems_version: 1.8.8
Binary file