epub-parser 0.0.9.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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