eeepub 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.2
1
+ 0.5.0
@@ -6,5 +6,37 @@
6
6
  </head>
7
7
  <body>
8
8
  <h1>bar</h1>
9
+
10
+ <p>foo foo foo foo</p>
11
+ <p>bar bar bar bar</p>
12
+ <p>foo foo foo foo</p>
13
+ <p>bar bar bar bar</p>
14
+ <p>foo foo foo foo</p>
15
+ <p>bar bar bar bar</p>
16
+ <p>foo foo foo foo</p>
17
+ <p>bar bar bar bar</p>
18
+ <p>foo foo foo foo</p>
19
+ <p>bar bar bar bar</p>
20
+ <p>foo foo foo foo</p>
21
+ <p>bar bar bar bar</p>
22
+ <p>foo foo foo foo</p>
23
+ <p>bar bar bar bar</p>
24
+
25
+ <h2 id="bar-1">bar-1</h2>
26
+
27
+ <p>foo foo foo foo</p>
28
+ <p>bar bar bar bar</p>
29
+ <p>foo foo foo foo</p>
30
+ <p>bar bar bar bar</p>
31
+ <p>foo foo foo foo</p>
32
+ <p>bar bar bar bar</p>
33
+ <p>foo foo foo foo</p>
34
+ <p>bar bar bar bar</p>
35
+ <p>foo foo foo foo</p>
36
+ <p>bar bar bar bar</p>
37
+ <p>foo foo foo foo</p>
38
+ <p>bar bar bar bar</p>
39
+ <p>foo foo foo foo</p>
40
+ <p>bar bar bar bar</p>
9
41
  </body>
10
42
  </html>
@@ -6,5 +6,37 @@
6
6
  </head>
7
7
  <body>
8
8
  <h1>foo</h1>
9
+
10
+ <p>foo foo foo foo</p>
11
+ <p>bar bar bar bar</p>
12
+ <p>foo foo foo foo</p>
13
+ <p>bar bar bar bar</p>
14
+ <p>foo foo foo foo</p>
15
+ <p>bar bar bar bar</p>
16
+ <p>foo foo foo foo</p>
17
+ <p>bar bar bar bar</p>
18
+ <p>foo foo foo foo</p>
19
+ <p>bar bar bar bar</p>
20
+ <p>foo foo foo foo</p>
21
+ <p>bar bar bar bar</p>
22
+ <p>foo foo foo foo</p>
23
+ <p>bar bar bar bar</p>
24
+
25
+ <h2 id="foo-1">foo-1</h2>
26
+
27
+ <p>foo foo foo foo</p>
28
+ <p>bar bar bar bar</p>
29
+ <p>foo foo foo foo</p>
30
+ <p>bar bar bar bar</p>
31
+ <p>foo foo foo foo</p>
32
+ <p>bar bar bar bar</p>
33
+ <p>foo foo foo foo</p>
34
+ <p>bar bar bar bar</p>
35
+ <p>foo foo foo foo</p>
36
+ <p>bar bar bar bar</p>
37
+ <p>foo foo foo foo</p>
38
+ <p>bar bar bar bar</p>
39
+ <p>foo foo foo foo</p>
40
+ <p>bar bar bar bar</p>
9
41
  </body>
10
42
  </html>
@@ -0,0 +1,71 @@
1
+ require 'tmpdir'
2
+ require 'fileutils'
3
+
4
+ module EeePub
5
+ # The class to make ePub more easily
6
+ #
7
+ # @example
8
+ # epub = EeePub::Easy.new do
9
+ # title 'sample'
10
+ # creator 'jugyo'
11
+ # identifier 'http://example.com/book/foo', :scheme => 'URL'
12
+ # uid 'http://example.com/book/foo'
13
+ # end
14
+ #
15
+ # epub.sections << ['1. foo', <<HTML]
16
+ # <?xml version="1.0" encoding="UTF-8"?>
17
+ # <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
18
+ # <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
19
+ # <head>
20
+ # <title>foo</title>
21
+ # </head>
22
+ # <body>
23
+ # <p>
24
+ # foo foo foo foo foo foo
25
+ # </p>
26
+ # </body>
27
+ # </html>
28
+ # HTML
29
+ #
30
+ # epub.assets << 'image.png'
31
+ #
32
+ # epub.save('sample.epub')
33
+ class Easy < EeePub::Maker
34
+ attr_reader :sections, :assets
35
+
36
+ # @param [Proc] block the block for initialize
37
+ def initialize(&block)
38
+ @sections = []
39
+ @assets = []
40
+ super
41
+ end
42
+
43
+ # Save as ePub file
44
+ #
45
+ # @param [String] filename the ePub file name to save
46
+ def save(filename)
47
+ Dir.mktmpdir do |dir|
48
+ prepare(dir)
49
+ super
50
+ end
51
+ end
52
+
53
+ private
54
+
55
+ def prepare(dir)
56
+ filenames = []
57
+ sections.each_with_index do |section, index|
58
+ filename = File.join(dir, "section_#{index}.html")
59
+ File.open(filename, 'w') { |file| file.write section[1] }
60
+ filenames << filename
61
+ end
62
+
63
+ files(filenames + assets)
64
+ nav(
65
+ [sections, filenames].transpose.map do |section, filename|
66
+ {:label => section[0], :content => File.basename(filename)}
67
+ end
68
+ )
69
+ end
70
+ end
71
+ end
data/lib/eeepub/maker.rb CHANGED
@@ -28,6 +28,11 @@ module EeePub
28
28
  :creator,
29
29
  :publisher,
30
30
  :date,
31
+ :language,
32
+ :subject,
33
+ :description,
34
+ :rights,
35
+ :relation
31
36
  ].each do |name|
32
37
  class_eval <<-DELIM
33
38
  def #{name}(value)
@@ -85,6 +90,11 @@ module EeePub
85
90
  :creator => @creators,
86
91
  :publisher => @publishers,
87
92
  :date => @dates,
93
+ :language => @languages,
94
+ :subject => @subjects,
95
+ :description => @descriptions,
96
+ :rights => @rightss,
97
+ :relation => @relations,
88
98
  :manifest => @files.map{|i| File.basename(i)},
89
99
  :ncx => @ncx_file
90
100
  ).save(File.join(dir, @opf_file))
data/lib/eeepub.rb CHANGED
@@ -3,6 +3,7 @@ require 'eeepub/opf'
3
3
  require 'eeepub/ocf'
4
4
  require 'eeepub/ncx'
5
5
  require 'eeepub/maker'
6
+ require 'eeepub/easy'
6
7
 
7
8
  module EeePub
8
9
  # Make ePub
@@ -0,0 +1,64 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "EeePub::Easy" do
4
+ before do
5
+ @easy = EeePub::Easy.new do
6
+ title 'sample'
7
+ creator 'jugyo'
8
+ identifier 'http://example.com/book/foo', :scheme => 'URL'
9
+ uid 'http://example.com/book/foo'
10
+ end
11
+
12
+ @easy.sections << ['1. foo', <<HTML]
13
+ <?xml version="1.0" encoding="UTF-8"?>
14
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
15
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
16
+ <head>
17
+ <title>foo</title>
18
+ </head>
19
+ <body>
20
+ <p>
21
+ foo foo foo foo foo foo
22
+ </p>
23
+ </body>
24
+ </html>
25
+ HTML
26
+
27
+ @easy.sections << ['2. bar', <<HTML]
28
+ <?xml version="1.0" encoding="UTF-8"?>
29
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
30
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
31
+ <head>
32
+ <title>bar</title>
33
+ </head>
34
+ <body>
35
+ <p>
36
+ bar bar bar bar bar bar
37
+ </p>
38
+ </body>
39
+ </html>
40
+ HTML
41
+
42
+ @easy.assets << 'image.png'
43
+ end
44
+
45
+ it 'spec for prepare' do
46
+ Dir.mktmpdir do |dir|
47
+ @easy.send(:prepare, dir)
48
+
49
+ file1 = File.join(dir, 'section_0.html')
50
+ file2 = File.join(dir, 'section_1.html')
51
+ File.exists?(file1).should be_true
52
+ File.exists?(file2).should be_true
53
+ File.read(file1).should == @easy.sections[0][1]
54
+ File.read(file2).should == @easy.sections[1][1]
55
+
56
+ @easy.instance_variable_get(:@nav).should == [
57
+ {:label => '1. foo', :content => 'section_0.html'},
58
+ {:label => '2. bar', :content => 'section_1.html'}
59
+ ]
60
+
61
+ @easy.instance_variable_get(:@files).should == [file1, file2, 'image.png']
62
+ end
63
+ end
64
+ end
@@ -7,6 +7,11 @@ describe "EeePub::Maker" do
7
7
  creator 'jugyo'
8
8
  publisher 'jugyo.org'
9
9
  date "2010-05-06"
10
+ language 'en'
11
+ subject 'epub sample'
12
+ description 'this is epub sample'
13
+ rights 'xxx'
14
+ relation 'xxx'
10
15
  identifier 'http://example.com/book/foo', :scheme => 'URL'
11
16
  uid 'http://example.com/book/foo'
12
17
  ncx_file 'toc.ncx'
@@ -50,6 +55,11 @@ describe "EeePub::Maker" do
50
55
  :title => ["sample"],
51
56
  :creator => ["jugyo"],
52
57
  :date => ["2010-05-06"],
58
+ :language => ['en'],
59
+ :subject => ['epub sample'],
60
+ :description => ['this is epub sample'],
61
+ :rights => ['xxx'],
62
+ :relation => ['xxx'],
53
63
  :ncx => "toc.ncx",
54
64
  :publisher => ["jugyo.org"],
55
65
  :identifier => [{:value => "http://example.com/book/foo", :scheme => "URL"}],
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 4
8
- - 2
9
- version: 0.4.2
7
+ - 5
8
+ - 0
9
+ version: 0.5.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - jugyo
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-09 00:00:00 +09:00
17
+ date: 2010-05-16 00:00:00 +09:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -74,10 +74,12 @@ files:
74
74
  - examples/simple_epub.rb
75
75
  - lib/eeepub.rb
76
76
  - lib/eeepub/container_item.rb
77
+ - lib/eeepub/easy.rb
77
78
  - lib/eeepub/maker.rb
78
79
  - lib/eeepub/ncx.rb
79
80
  - lib/eeepub/ocf.rb
80
81
  - lib/eeepub/opf.rb
82
+ - spec/eeepub/easy_spec.rb
81
83
  - spec/eeepub/maker_spec.rb
82
84
  - spec/eeepub/ncx_spec.rb
83
85
  - spec/eeepub/ocf_spec.rb
@@ -116,6 +118,7 @@ signing_key:
116
118
  specification_version: 3
117
119
  summary: ePub generator
118
120
  test_files:
121
+ - spec/eeepub/easy_spec.rb
119
122
  - spec/eeepub/maker_spec.rb
120
123
  - spec/eeepub/ncx_spec.rb
121
124
  - spec/eeepub/ocf_spec.rb