gepub 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +1 -1
- data/VERSION +1 -1
- data/bin/gepuber +1 -1
- data/gepub.gemspec +7 -4
- data/lib/gepub/gepuber.rb +36 -45
- data/spec/fixtures/testdata/0.html +12 -0
- data/spec/fixtures/testdata/1.html +10 -0
- data/spec/gepuber_spec.rb +52 -0
- metadata +7 -5
data/README.rdoc
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
data/bin/gepuber
CHANGED
data/gepub.gemspec
CHANGED
@@ -5,12 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{gepub}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["KOJIMA Satoshi"]
|
12
|
-
s.date = %q{2011-04-
|
13
|
-
s.default_executable = %q{gepuber}
|
12
|
+
s.date = %q{2011-04-21}
|
14
13
|
s.description = %q{an easy-to-use (and easy-to-implement) EPUB generator.}
|
15
14
|
s.email = %q{skoji@skoji.jp}
|
16
15
|
s.executables = ["gepuber"]
|
@@ -31,16 +30,20 @@ Gem::Specification.new do |s|
|
|
31
30
|
"lib/gepub/generator.rb",
|
32
31
|
"lib/gepub/gepuber.rb",
|
33
32
|
"lib/gepub/item.rb",
|
33
|
+
"spec/fixtures/testdata/0.html",
|
34
|
+
"spec/fixtures/testdata/1.html",
|
34
35
|
"spec/gepub_spec.rb",
|
36
|
+
"spec/gepuber_spec.rb",
|
35
37
|
"spec/spec_helper.rb"
|
36
38
|
]
|
37
39
|
s.homepage = %q{http://github.com/skoji/gepub}
|
38
40
|
s.require_paths = ["lib"]
|
39
|
-
s.rubygems_version = %q{1.
|
41
|
+
s.rubygems_version = %q{1.7.2}
|
40
42
|
s.summary = %q{a good-enough EPUB generator.}
|
41
43
|
s.test_files = [
|
42
44
|
"examples/example.rb",
|
43
45
|
"spec/gepub_spec.rb",
|
46
|
+
"spec/gepuber_spec.rb",
|
44
47
|
"spec/spec_helper.rb"
|
45
48
|
]
|
46
49
|
|
data/lib/gepub/gepuber.rb
CHANGED
@@ -1,63 +1,54 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
|
3
3
|
module GEPUB
|
4
|
-
class Gepuber
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|arg|
|
11
|
-
@book.send(name.to_s + "=" , arg)
|
12
|
-
}
|
13
|
-
}
|
14
|
-
end
|
4
|
+
class Gepuber < GEPUB::Book
|
5
|
+
class FileProvider
|
6
|
+
include Enumerable
|
7
|
+
def initialize(pattern)
|
8
|
+
@list = Dir.glob(pattern)
|
9
|
+
end
|
15
10
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
11
|
+
def each (&block)
|
12
|
+
@list.each {
|
13
|
+
|f|
|
14
|
+
File.open(f, 'rb') {
|
15
|
+
|fio|
|
16
|
+
yield f, fio
|
17
|
+
}
|
22
18
|
}
|
23
|
-
|
19
|
+
end
|
24
20
|
end
|
25
21
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
@
|
22
|
+
attr_accessor :texts, :resources, :epubname, :coverimg, :table_of_contents, :provider
|
23
|
+
|
24
|
+
def initialize(param)
|
25
|
+
super('', 'OEBPS')
|
26
|
+
param.each {
|
27
|
+
|k,v|
|
28
|
+
self.send "#{k}=", v
|
29
|
+
}
|
30
|
+
@texts ||= ['[0-9]*.html']
|
31
|
+
@resources ||= ['*.css', 'img/*']
|
35
32
|
@coverimg ||= 'cover.jpg'
|
36
|
-
@
|
33
|
+
@table_of_contents ||= {}
|
37
34
|
@epubname ||= 'gepuber_generated'
|
35
|
+
@provider ||= FileProvider
|
38
36
|
end
|
39
37
|
|
40
38
|
def create(destbasedir = ".")
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
item = @book.add_item(f, fio)
|
47
|
-
@book.spine << item
|
48
|
-
@book.add_nav(item, @toc[f]) if !@toc[f].nil?
|
49
|
-
}
|
39
|
+
@provider.new(@texts).each {
|
40
|
+
|f, fio|
|
41
|
+
item = add_item(f, fio)
|
42
|
+
@spine << item
|
43
|
+
add_nav(item, @toc[f]) if !@toc[f].nil?
|
50
44
|
}
|
51
45
|
|
52
|
-
@resources.each {
|
53
|
-
|f|
|
54
|
-
|
55
|
-
|
56
|
-
item = @book.add_item(f, fio)
|
57
|
-
@book.specify_cover_image(item) if File.basename(f) == @coverimg
|
58
|
-
}
|
46
|
+
@provider.new(@resources).each {
|
47
|
+
|f, fio|
|
48
|
+
item = add_item(f, fio)
|
49
|
+
specify_cover_image(item) if File.basename(f) == @coverimg
|
59
50
|
}
|
60
|
-
|
51
|
+
generate_epub(File.join(destbasedir, @epubname + '.epub'))
|
61
52
|
end
|
62
53
|
end
|
63
54
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<title>gepuber test book</title>
|
5
|
+
<link rel="stylesheet" type="text/css" href="gepuber.css"></link>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<div>
|
9
|
+
<img class="cover" src="img/cover.jpg" alt="cover" />
|
10
|
+
</div>
|
11
|
+
</body>
|
12
|
+
</html>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<title>gepuber test book: page 1</title>
|
5
|
+
<link rel="stylesheet" type="text/css" href="gepuber.css"></link>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<p>contents comes here</p>
|
9
|
+
</body>
|
10
|
+
</html>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# need to install 'epubcheck'.
|
3
|
+
|
4
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
5
|
+
require 'rubygems'
|
6
|
+
require 'xml/libxml'
|
7
|
+
|
8
|
+
|
9
|
+
describe GEPUB::Gepuber do
|
10
|
+
it "should be initialized with empty conf" do
|
11
|
+
gepuber = GEPUB::Gepuber.new({})
|
12
|
+
gepuber.texts.should == ['[0-9]*.html']
|
13
|
+
gepuber.resources.should == ['*.css', 'img/*']
|
14
|
+
gepuber.title.should == ""
|
15
|
+
gepuber.table_of_contents.should == {}
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should read config hash" do
|
19
|
+
conf =
|
20
|
+
{
|
21
|
+
locale: 'ja',
|
22
|
+
title: 'theTitle',
|
23
|
+
author: 'theAuthor',
|
24
|
+
publisher: 'thePublisher',
|
25
|
+
date: '2011-03-11',
|
26
|
+
identifier: 'http://skoji.jp/gepuber/2011-03-11.0.0',
|
27
|
+
epubname: 'gepub_00',
|
28
|
+
table_of_contents: {
|
29
|
+
'1_.html' => '1st toc',
|
30
|
+
'3_.html' => '3rd toc',
|
31
|
+
'9_.html' => 'last toc'
|
32
|
+
},
|
33
|
+
coverimg: 'cover.gif',
|
34
|
+
texts: [ '*.html' ],
|
35
|
+
resources: ['*.css','*.gif']
|
36
|
+
}
|
37
|
+
|
38
|
+
gepuber = GEPUB::Gepuber.new(conf )
|
39
|
+
gepuber.title.should == "theTitle"
|
40
|
+
gepuber.locale.should == "ja"
|
41
|
+
gepuber.author.should == "theAuthor"
|
42
|
+
gepuber.publisher.should == "thePublisher"
|
43
|
+
gepuber.date.should == "2011-03-11"
|
44
|
+
gepuber.identifier.should == 'http://skoji.jp/gepuber/2011-03-11.0.0'
|
45
|
+
gepuber.epubname.should == 'gepub_00'
|
46
|
+
gepuber.coverimg.should == 'cover.gif'
|
47
|
+
gepuber.table_of_contents.should == { '1_.html' => '1st toc', '3_.html' => '3rd toc', '9_.html' => 'last toc'}
|
48
|
+
gepuber.texts.should == ['*.html']
|
49
|
+
gepuber.resources.should == ['*.css', '*.gif']
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: gepub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.4.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- KOJIMA Satoshi
|
@@ -10,8 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-04-
|
14
|
-
default_executable: gepuber
|
13
|
+
date: 2011-04-21 00:00:00 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: libxml-ruby
|
@@ -101,9 +100,11 @@ files:
|
|
101
100
|
- lib/gepub/generator.rb
|
102
101
|
- lib/gepub/gepuber.rb
|
103
102
|
- lib/gepub/item.rb
|
103
|
+
- spec/fixtures/testdata/0.html
|
104
|
+
- spec/fixtures/testdata/1.html
|
104
105
|
- spec/gepub_spec.rb
|
106
|
+
- spec/gepuber_spec.rb
|
105
107
|
- spec/spec_helper.rb
|
106
|
-
has_rdoc: true
|
107
108
|
homepage: http://github.com/skoji/gepub
|
108
109
|
licenses: []
|
109
110
|
|
@@ -127,11 +128,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
128
|
requirements: []
|
128
129
|
|
129
130
|
rubyforge_project:
|
130
|
-
rubygems_version: 1.
|
131
|
+
rubygems_version: 1.7.2
|
131
132
|
signing_key:
|
132
133
|
specification_version: 3
|
133
134
|
summary: a good-enough EPUB generator.
|
134
135
|
test_files:
|
135
136
|
- examples/example.rb
|
136
137
|
- spec/gepub_spec.rb
|
138
|
+
- spec/gepuber_spec.rb
|
137
139
|
- spec/spec_helper.rb
|