epub-parser 0.0.5 → 0.0.6

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/README.markdown ADDED
@@ -0,0 +1,29 @@
1
+ EPUB Parser
2
+ ===========
3
+
4
+ INSTALL
5
+ -------
6
+ gem install epub-parser
7
+
8
+ USAGE
9
+ -----
10
+ require 'epub/parser'
11
+
12
+ book = EPUB::Parser.parse 'book.epub', 'working_directory'
13
+ book.each_page_on_spine do |page|
14
+ # do somethong...
15
+ end
16
+
17
+ See [Wiki][] for more info.
18
+
19
+ [Wiki]:https://gitorious.org/epub/pages/EpubParser
20
+
21
+ REQUIREMENTS
22
+ ------------
23
+ * UNIX like `unzip` command
24
+ * libxml2 and libxslt for Nokogiri gem
25
+
26
+ LICENSE
27
+ -------
28
+ This library is distribuetd under the term of the MIT License.
29
+ See MIT-LICENSE file for more info.
data/bin/epubinfo ADDED
@@ -0,0 +1,13 @@
1
+ require 'epub/parser'
2
+ require 'tmpdir'
3
+
4
+ # Use optparse or slop or Thor
5
+ # Validat ARGV
6
+
7
+ file = ARGV[0]
8
+ dir = Dir.mktmpdir('epub-parser') do |dir|
9
+
10
+ book = EPUB::Parser.parse file, dir
11
+ puts book.package.metadata.to_json
12
+
13
+ end
data/epub-parser.gemspec CHANGED
@@ -30,6 +30,8 @@ Gem::Specification.new do |s|
30
30
  s.add_development_dependency 'epzip'
31
31
  s.add_development_dependency 'epubcheck'
32
32
  s.add_development_dependency 'epub_validator'
33
+ s.add_development_dependency 'zipruby'
34
+ s.add_development_dependency 'rubyzip'
33
35
 
34
36
  s.add_runtime_dependency 'enumerabler'
35
37
  s.add_runtime_dependency 'nokogiri'
data/lib/epub.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'epub/ocf'
2
2
  require 'epub/publication'
3
3
  require 'epub/content_document'
4
+ require 'epub/parser'
4
5
 
5
6
  module EPUB
6
7
  modules = [ :ocf, :package, :content_document ]
@@ -12,7 +13,13 @@ module EPUB
12
13
  end
13
14
  end
14
15
 
15
- def each_page_by_spine(&blk)
16
+ def parse(file, dir, options = {})
17
+ options = options.merge({:book => self})
18
+ Parser.parse(file, dir, options)
19
+ end
20
+ module_function :parse
21
+
22
+ def each_page_on_spine(&blk)
16
23
  enum = @package.spine.items
17
24
  if block_given?
18
25
  enum.each &blk
@@ -21,7 +28,7 @@ module EPUB
21
28
  end
22
29
  end
23
30
 
24
- def each_page_by_toc(&blk)
31
+ def each_page_on_toc(&blk)
25
32
  end
26
33
 
27
34
  def each_content(&blk)
@@ -17,7 +17,7 @@ module EPUB
17
17
  end
18
18
 
19
19
  module MediaType
20
- class NotSupportedError < StandardError; end
20
+ class UnsupportedError < StandardError; end
21
21
 
22
22
  IMAGE = %w[
23
23
  image/gif
data/lib/epub/parser.rb CHANGED
@@ -27,7 +27,6 @@ module EPUB
27
27
  unzip_cmd = options['unzip-command'] || 'unzip'
28
28
  unzip_cmd << " #{@filepath.to_s.shellescape} -d #{@dir.to_s.shellescape}"
29
29
  system unzip_cmd
30
- puts unzip_cmd
31
30
  end
32
31
 
33
32
  def parse
@@ -21,7 +21,7 @@ module EPUB
21
21
 
22
22
  def parse
23
23
  EPUB::OCF::MODULES.each do |m|
24
- @ocf.send "#{m}=", send("parse_#{m}")
24
+ @ocf.__send__ "#{m}=", __send__("parse_#{m}")
25
25
  end
26
26
  @ocf
27
27
  end
@@ -33,7 +33,7 @@ module EPUB
33
33
  doc.xpath('/container:container/container:rootfiles/container:rootfile', EPUB::NAMESPACES).each do |elem|
34
34
  rootfile = EPUB::OCF::Container::Rootfile.new
35
35
  %w[full-path media-type].each do |attr|
36
- rootfile.send(attr.gsub(/-/, '_') + '=', elem[attr])
36
+ rootfile.__send__(attr.gsub(/-/, '_') + '=', elem[attr])
37
37
  end
38
38
  container.rootfiles << rootfile
39
39
  end
@@ -19,7 +19,7 @@ module EPUB
19
19
  end
20
20
 
21
21
  def parse
22
- # parse_metadata
22
+ parse_metadata
23
23
  parse_manifest
24
24
  parse_spine
25
25
  parse_guide
@@ -29,7 +29,52 @@ module EPUB
29
29
  end
30
30
 
31
31
  def parse_metadata
32
- raise 'still not implemented'
32
+ metadata = @package.metadata = EPUB::Publication::Package::Metadata.new
33
+ elem = @doc.xpath('/opf:package/opf:metadata', EPUB::NAMESPACES).first
34
+
35
+ metadata.identifiers = elem.xpath('./dc:identifier', EPUB::NAMESPACES).collect do |e|
36
+ identifier = EPUB::Publication::Package::Metadata::Identifier.new
37
+ identifier.content = e.content
38
+ identifier.id = id = e['id']
39
+ metadata.unique_identifier = identifier if id == @package.unique_identifier
40
+ identifier
41
+ end
42
+
43
+ metadata.titles = elem.xpath('./dc:title', EPUB::NAMESPACES).collect do |e|
44
+ title = EPUB::Publication::Package::Metadata::Title.new
45
+ title.content = e.content
46
+ %w[ id lang dir ].each do |attr|
47
+ title.__send__("#{attr}=", e[attr])
48
+ end
49
+ title
50
+ end
51
+
52
+ metadata.languages = elem.xpath('./dc:language', EPUB::NAMESPACES).collect do |e|
53
+ e.content
54
+ end
55
+
56
+ %w[ contributor coverage creator date description format publisher relation source subject type ].each do |dcmes|
57
+ metadata.__send__ "#{dcmes}s=", elem.xpath("./dc:#{dcmes}", EPUB::NAMESPACES).collect { |e|
58
+ md = EPUB::Publication::Package::Metadata::DCMES.new
59
+ md.content = e.content
60
+ %w[ id lang dir ].each do |attr|
61
+ md.__send__("#{attr}=", e[attr])
62
+ end
63
+ md
64
+ }
65
+ end
66
+ metadata.rights = elem.xpath('./dc:rights', EPUB::NAMESPACES).collect do |e|
67
+ md = EPUB::Publication::Package::Manifest::DCMES.new
68
+ md.content = e.content
69
+ %w[ id lang dir ].each do |attr|
70
+ md.__send__("#{attr}=", e[attr])
71
+ end
72
+ md
73
+ end
74
+
75
+ # handle meta elements
76
+
77
+ metadata
33
78
  end
34
79
 
35
80
  def parse_manifest
@@ -38,15 +83,15 @@ module EPUB
38
83
  manifest.id = elem['id']
39
84
 
40
85
  fallback_map = {}
41
- elem.xpath('./opf:item', EPUB::NAMESPACES).each do |elm|
86
+ elem.xpath('./opf:item', EPUB::NAMESPACES).each do |e|
42
87
  item = EPUB::Publication::Package::Manifest::Item.new
43
88
  %w[ id media-type media-overlay ].each do |attr|
44
- item.send "#{attr.gsub(/-/, '_')}=", elm[attr]
89
+ item.__send__("#{attr.gsub(/-/, '_')}=", e[attr])
45
90
  end
46
- item.href = elm['href']
47
- item.iri = @rootfile.join Addressable::URI.parse(elm['href'])
48
- fallback_map[elm['fallback']] = item if elm['fallback']
49
- item.properties = elm['properties'] ? elm['properties'].split(' ') : []
91
+ item.href = e['href']
92
+ item.iri = @rootfile.join Addressable::URI.parse(e['href'])
93
+ fallback_map[e['fallback']] = item if e['fallback']
94
+ item.properties = e['properties'] ? e['properties'].split(' ') : []
50
95
  manifest << item
51
96
  end
52
97
  fallback_map.each_pair do |id, from|
@@ -60,16 +105,16 @@ module EPUB
60
105
  spine = @package.spine = EPUB::Publication::Package::Spine.new
61
106
  elem = @doc.xpath('/opf:package/opf:spine', EPUB::NAMESPACES).first
62
107
  %w[ id toc page-progression-direction ].each do |attr|
63
- spine.send("#{attr.gsub(/-/, '_')}=", elem[attr])
108
+ spine.__send__("#{attr.gsub(/-/, '_')}=", elem[attr])
64
109
  end
65
110
 
66
- elem.xpath('./opf:itemref', EPUB::NAMESPACES).each do |elm|
111
+ elem.xpath('./opf:itemref', EPUB::NAMESPACES).each do |e|
67
112
  itemref = EPUB::Publication::Package::Spine::Itemref.new
68
113
  %w[ idref id ].each do |attr|
69
- itemref.send "#{attr}=", elm[attr]
114
+ itemref.__send__("#{attr}=", e[attr])
70
115
  end
71
- itemref.linear = (elm['linear'] != 'no')
72
- itemref.properties = elm['properties'] ? elm['properties'].split(' ') : []
116
+ itemref.linear = (e['linear'] != 'no')
117
+ itemref.properties = e['properties'] ? e['properties'].split(' ') : []
73
118
  spine << itemref
74
119
  end
75
120
 
@@ -81,7 +126,7 @@ module EPUB
81
126
  elem = @doc.xpath('/opf:package/opf:guide/opf:reference', EPUB::NAMESPACES).each do |ref|
82
127
  reference = EPUB::Publication::Package::Guide::Reference.new
83
128
  %w[ type title href ].each do |attr|
84
- reference.send("#{attr}=", ref[attr])
129
+ reference.__send__("#{attr}=", ref[attr])
85
130
  end
86
131
  reference.iri = @rootfile.join Addressable::URI.parse(reference.href)
87
132
  guide << reference
@@ -1,5 +1,5 @@
1
1
  module EPUB
2
2
  class Parser
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
  end
5
5
  end
@@ -1,4 +1,4 @@
1
- %w[ metadata manifest spine guide ].each { |f| require "epub/publication/package/#{f}" }
1
+ %w[ metadata manifest spine guide bindings ].each { |f| require "epub/publication/package/#{f}" }
2
2
 
3
3
  module EPUB
4
4
  module Publication
@@ -10,6 +10,8 @@ module EPUB
10
10
  alias lang= xml_lang=
11
11
 
12
12
  def metadata=(metadata)
13
+ metadata.package = self
14
+ @metadata = metadata
13
15
  end
14
16
 
15
17
  def manifest=(manifest)
@@ -15,7 +15,6 @@ module EPUB
15
15
  references << reference
16
16
  end
17
17
 
18
- # Should use epub:type list?
19
18
  %w[cover title-page toc index glossary acknowledgements bibliography colophon copyright-page dedication epigraph foreword loi lot notes preface text].each do |type|
20
19
  define_method type do
21
20
  var = instance_variable_get "@#{type}"
@@ -8,7 +8,6 @@ module EPUB
8
8
  attr_accessor :package,
9
9
  :id
10
10
 
11
- # syntax sugar for #items.<<
12
11
  def <<(item)
13
12
  @items ||= {}
14
13
  item.manifest = self
@@ -57,16 +56,16 @@ module EPUB
57
56
  if ad = options[:supported]
58
57
  supported = supported | (ad.respond_to?(:to_ary) ? ad : [ad])
59
58
  end
60
- if del = options[:not_supported]
59
+ if del = options[:unsupported]
61
60
  supported = supported - (del.respond_to?(:to_ary) ? del : [del])
62
61
  end
63
62
 
64
63
  if supported.include? media_type
65
64
  yield self
66
65
  elsif fallback
67
- fallback.use_fallback_chain(options) {|fallbacked| yield fallbacked}
66
+ fallback.use_fallback_chain(options) {|fb| yield fb}
68
67
  else
69
- raise EPUB::MediaType::NotSupportedError
68
+ raise EPUB::MediaType::UnsupportedError
70
69
  end
71
70
  end
72
71
 
@@ -1,16 +1,51 @@
1
+ require 'json'
2
+
1
3
  module EPUB
2
4
  module Publication
3
5
  class Package
4
6
  class Metadata
5
- elems = [:identifiers, :titles, :languages] +
6
- [:contributers, :coverages, :creators, :dates, :descriptions, :formats, :publishers,
7
- :relations, :rigths, :sources, :subjects, :types]
8
- attr_accessor *(elems.collect {|elem| "dc_#{elem}"})
9
- elems.each do |elem|
7
+ ELEMS = [:identifiers, :titles, :languages] +
8
+ [:contributors, :coverages, :creators, :dates, :descriptions, :formats, :publishers,
9
+ :relations, :rights, :sources, :subjects, :types]
10
+ attr_accessor :package,
11
+ *(ELEMS.collect {|elem| "dc_#{elem}"})
12
+ ELEMS.each do |elem|
10
13
  alias_method elem, "dc_#{elem}"
11
14
  alias_method "#{elem}=", "dc_#{elem}="
12
15
  end
13
- attr_accessor :metas, :links
16
+ attr_accessor :links
17
+
18
+ def to_json(pretty = false)
19
+ obj = {}
20
+ ELEMS.each do |elem|
21
+ obj[elem] = __send__(elem)
22
+ end
23
+ obj.to_json
24
+ end
25
+
26
+ class Identifier
27
+ attr_accessor :content, :id
28
+
29
+ def to_s
30
+ content
31
+ end
32
+ end
33
+
34
+ class Title
35
+ attr_accessor :content, :id, :lang, :dir
36
+
37
+ def to_s
38
+ content
39
+ end
40
+ end
41
+
42
+ class DCMES
43
+ attr_accessor :content, :id, :lang, :dir
44
+
45
+ def to_s
46
+ content
47
+ end
48
+ end
14
49
  end
15
50
  end
16
51
  end
Binary file
@@ -1,8 +1,44 @@
1
1
  <?xml version="1.0"?>
2
2
  <package version="3.0"
3
- uniqueue-identifier="pub-id"
3
+ unique-identifier="pub-id"
4
4
  xmlns="http://www.idpf.org/2007/opf">
5
- <metadata></metadata>
5
+ <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
6
+ <dc:identifier id="pub-id">da265185-8da8-462d-a146-17dd388f61fc</dc:identifier>
7
+
8
+ <dc:title id="t1" xml:lang="fr">Mon premier guide de cuisson, un Mémoire</dc:title>
9
+ <meta refines="#t1" property="title-type">main</meta>
10
+ <meta refines="#t1" property="display-seq">2</meta>
11
+
12
+ <dc:title id="t2">The Great Cookbooks of the World</dc:title>
13
+ <meta refines="#t2" property="title-type">collection</meta>
14
+ <meta refines="#t2" property="display-seq">1</meta>
15
+
16
+ <dc:title id="t3">The New French Cuisine Masters</dc:title>
17
+ <meta refines="#t3" property="title-type">collection</meta>
18
+ <meta refines="#t3" property="group-position">2</meta>
19
+ <meta refines="#t3" property="display-seq">3</meta>
20
+
21
+ <dc:title id="t4">Special Anniversary Edition</dc:title>
22
+ <meta refines="#t4" property="title-type">edition</meta>
23
+ <meta refines="#t4" property="display-seq">4</meta>
24
+
25
+ <dc:title id="t5">The Great Cookbooks of the World:
26
+ Mon premier guide de cuisson, un Mémoire.
27
+ The New French Cuisine Masters, Volume Two.
28
+ Special Anniversary Edition</dc:title>
29
+ <meta refines="#t5" property="title-type">extended</meta>
30
+
31
+ <dc:language>ja</dc:language>
32
+ <meta property="dcterms:modified">2012-02-03T12:00:00Z</meta>
33
+
34
+ <dc:creator id="creator01">Lewis Carroll</dc:creator>
35
+ <meta refines="#creator01" property="role" scheme="marc:relators">aut</meta>
36
+ <meta refines="#creator01" property="display-seq">1</meta>
37
+
38
+ <dc:creator id="creator02">John Tenniel</dc:creator>
39
+ <meta refines="#creator02" property="role" scheme="marc:relators">ill</meta>
40
+ <meta refines="#creator02" property="display-seq">2</meta>
41
+ </metadata>
6
42
  <manifest id="manifest-id">
7
43
  <item id="nav"
8
44
  href="nav.xhtml"
data/test/test_parser.rb CHANGED
@@ -23,8 +23,8 @@ class TestParser < Test::Unit::TestCase
23
23
  @book = @parser.parse
24
24
  end
25
25
 
26
- def test_each_page_by_spine_iterates_items_in_spines_order
27
- @book.each_page_by_spine do |page|
26
+ def test_each_page_on_spine_iterates_items_in_spines_order
27
+ @book.each_page_on_spine do |page|
28
28
  assert_instance_of EPUB::Publication::Package::Manifest::Item, page
29
29
  end
30
30
  end
@@ -48,13 +48,5 @@ class TestParser < Test::Unit::TestCase
48
48
  assert_instance_of EPUB::Publication::Package::Manifest::Item, page
49
49
  end
50
50
  end
51
-
52
- def test_h
53
- Modify method name
54
-
55
- @book.resources.each do |item|
56
- assert_instance_of EPUB::Publication::Package::Manifest::Item, item
57
- end
58
- end
59
51
  end
60
52
  end
@@ -7,6 +7,21 @@ class TestParserPublication < Test::Unit::TestCase
7
7
  @parser = EPUB::Parser::Publication.new 'test/fixtures/book/OPS/ルートファイル.opf'
8
8
  end
9
9
 
10
+ class TestParseMetaata < TestParserPublication
11
+ def setup
12
+ super
13
+ @metadata = @parser.parse_metadata
14
+ end
15
+
16
+ def test_has_identifier
17
+ assert_equal 'da265185-8da8-462d-a146-17dd388f61fc', @metadata.identifiers.first.content
18
+ end
19
+
20
+ def test_has_five_titles
21
+ assert_equal 5, @metadata.titles.length
22
+ end
23
+ end
24
+
10
25
  class TestParseManifest < TestParserPublication
11
26
  def setup
12
27
  super
@@ -70,7 +85,7 @@ class TestParserPublication < Test::Unit::TestCase
70
85
  def test_item_can_custome_not_supported_media_type_in_use_fallback_chain
71
86
  item = @manifest['manifest-item-2']
72
87
  fallback = item.fallback.fallback
73
- result = item.use_fallback_chain not_supported: 'image/svg+xml' do |current|
88
+ result = item.use_fallback_chain unsupported: 'image/svg+xml' do |current|
74
89
  current
75
90
  end
76
91
 
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.5
4
+ version: 0.0.6
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-01-08 00:00:00.000000000Z
12
+ date: 2012-02-14 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rubygems-test
16
- requirement: &11713580 !ruby/object:Gem::Requirement
16
+ requirement: &7403740 !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: *11713580
24
+ version_requirements: *7403740
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &11712960 !ruby/object:Gem::Requirement
27
+ requirement: &7421660 !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: *11712960
35
+ version_requirements: *7421660
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: pry
38
- requirement: &11712220 !ruby/object:Gem::Requirement
38
+ requirement: &7421060 !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: *11712220
46
+ version_requirements: *7421060
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: test-unit
49
- requirement: &11730760 !ruby/object:Gem::Requirement
49
+ requirement: &7420480 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '2'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *11730760
57
+ version_requirements: *7420480
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &11730060 !ruby/object:Gem::Requirement
60
+ requirement: &7419900 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *11730060
68
+ version_requirements: *7419900
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: thin
71
- requirement: &11729480 !ruby/object:Gem::Requirement
71
+ requirement: &7419300 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *11729480
79
+ version_requirements: *7419300
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: yard
82
- requirement: &11728780 !ruby/object:Gem::Requirement
82
+ requirement: &7418720 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *11728780
90
+ version_requirements: *7418720
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: epzip
93
- requirement: &11728300 !ruby/object:Gem::Requirement
93
+ requirement: &7418100 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *11728300
101
+ version_requirements: *7418100
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: epubcheck
104
- requirement: &11727620 !ruby/object:Gem::Requirement
104
+ requirement: &7416760 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *11727620
112
+ version_requirements: *7416760
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: epub_validator
115
- requirement: &11727080 !ruby/object:Gem::Requirement
115
+ requirement: &7414340 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,32 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *11727080
123
+ version_requirements: *7414340
124
+ - !ruby/object:Gem::Dependency
125
+ name: zipruby
126
+ requirement: &7427980 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: *7427980
135
+ - !ruby/object:Gem::Dependency
136
+ name: rubyzip
137
+ requirement: &7442820 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: *7442820
124
146
  - !ruby/object:Gem::Dependency
125
147
  name: enumerabler
126
- requirement: &11726420 !ruby/object:Gem::Requirement
148
+ requirement: &7440660 !ruby/object:Gem::Requirement
127
149
  none: false
128
150
  requirements:
129
151
  - - ! '>='
@@ -131,10 +153,10 @@ dependencies:
131
153
  version: '0'
132
154
  type: :runtime
133
155
  prerelease: false
134
- version_requirements: *11726420
156
+ version_requirements: *7440660
135
157
  - !ruby/object:Gem::Dependency
136
158
  name: nokogiri
137
- requirement: &11725700 !ruby/object:Gem::Requirement
159
+ requirement: &7439140 !ruby/object:Gem::Requirement
138
160
  none: false
139
161
  requirements:
140
162
  - - ! '>='
@@ -142,10 +164,10 @@ dependencies:
142
164
  version: '0'
143
165
  type: :runtime
144
166
  prerelease: false
145
- version_requirements: *11725700
167
+ version_requirements: *7439140
146
168
  - !ruby/object:Gem::Dependency
147
169
  name: addressable
148
- requirement: &11725080 !ruby/object:Gem::Requirement
170
+ requirement: &7436940 !ruby/object:Gem::Requirement
149
171
  none: false
150
172
  requirements:
151
173
  - - ! '>='
@@ -153,11 +175,12 @@ dependencies:
153
175
  version: '0'
154
176
  type: :runtime
155
177
  prerelease: false
156
- version_requirements: *11725080
178
+ version_requirements: *7436940
157
179
  description: Parse EPUB 3 book loosely
158
180
  email:
159
181
  - KitaitiMakoto@gmail.com
160
- executables: []
182
+ executables:
183
+ - epubinfo
161
184
  extensions: []
162
185
  extra_rdoc_files: []
163
186
  files:
@@ -165,8 +188,9 @@ files:
165
188
  - .gitignore
166
189
  - Gemfile
167
190
  - MIT-LICENSE
168
- - README
191
+ - README.markdown
169
192
  - Rakefile
193
+ - bin/epubinfo
170
194
  - epub-parser.gemspec
171
195
  - lib/epub.rb
172
196
  - lib/epub/book.rb
@@ -221,7 +245,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
221
245
  version: '0'
222
246
  segments:
223
247
  - 0
224
- hash: -4205757875746414572
248
+ hash: 3679147164764535889
225
249
  required_rubygems_version: !ruby/object:Gem::Requirement
226
250
  none: false
227
251
  requirements:
@@ -230,7 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
254
  version: '0'
231
255
  segments:
232
256
  - 0
233
- hash: -4205757875746414572
257
+ hash: 3679147164764535889
234
258
  requirements: []
235
259
  rubyforge_project:
236
260
  rubygems_version: 1.8.8
data/README DELETED
@@ -1,14 +0,0 @@
1
- EPUB Parer
2
- ==========
3
-
4
- USAGE
5
- -----
6
- book = EPUB::Parser.parse 'book.epub'
7
- book.each_page_in_spines_order do |page|
8
- # do somethong...
9
- end
10
-
11
- LICENSE
12
- -------
13
- This library is distribuetd under the term of the MIT License.
14
- See MIT-LICENSE file for more info.