epub-parser 0.0.5 → 0.0.6

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