kindler 0.1.6 → 0.1.7
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/lib/kindler/version.rb +1 -1
- data/lib/kindler.rb +8 -7
- data/spec/cases/generator_spec.rb +20 -0
- metadata +4 -3
data/lib/kindler/version.rb
CHANGED
data/lib/kindler.rb
CHANGED
@@ -10,7 +10,7 @@ require_relative "kindler/version"
|
|
10
10
|
module Kindler
|
11
11
|
class Book
|
12
12
|
class KindlerError < StandardError;end
|
13
|
-
attr_accessor :title,:author,:pages,:local_images,:mobi_type
|
13
|
+
attr_accessor :title,:author,:pages,:pages_by_section,:local_images,:mobi_type
|
14
14
|
TMP_DIR = 'kindler_generated_mobi'
|
15
15
|
DEFAULT_SECTION = "All Pages"
|
16
16
|
PAGE_ATTRIBUTES = %w(wrap title author content section)
|
@@ -30,6 +30,7 @@ module Kindler
|
|
30
30
|
@mobi_type = options[:mobi_type] || :magzine
|
31
31
|
@pages = []
|
32
32
|
@local_images = []
|
33
|
+
@pages_by_section = {}
|
33
34
|
raise KindlerError.new("must provide the book title ") unless title
|
34
35
|
end
|
35
36
|
|
@@ -63,13 +64,12 @@ module Kindler
|
|
63
64
|
end
|
64
65
|
|
65
66
|
def sectionize_pages
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
@pages_by_section[page[:section]] << page
|
67
|
+
self.pages.each do |page|
|
68
|
+
pages_by_section[page[:section]] ||= []
|
69
|
+
pages_by_section[page[:section]] << page
|
70
70
|
end
|
71
|
-
pages =
|
72
|
-
pages.each_with_index do |page,index|
|
71
|
+
self.pages = pages_by_section.values.flatten
|
72
|
+
self.pages.each_with_index do |page,index|
|
73
73
|
page[:count] = index + 1
|
74
74
|
page[:file_name] = "#{page[:count].to_s.rjust(3,'0')}.html"
|
75
75
|
end
|
@@ -88,6 +88,7 @@ module Kindler
|
|
88
88
|
system("kindlegen #{tmp_dir}/#{@title}.opf ")
|
89
89
|
end
|
90
90
|
|
91
|
+
# generate contents.html
|
91
92
|
def generate_toc
|
92
93
|
contents = <<-CODE
|
93
94
|
<html>
|
@@ -31,6 +31,26 @@ describe "Mobi html file generator" do
|
|
31
31
|
File.exist?(mobi_book_path(title)).should == true
|
32
32
|
end
|
33
33
|
|
34
|
+
it "should contains right info at contents html" do
|
35
|
+
title = 'test_contents'
|
36
|
+
book = Kindler::Book.new :title=>title,:author=>'mike',:debug=>true
|
37
|
+
book.add_page :title=>'love page1',:author=>'mike1',:content=>'this is the love page1',:section => 'love'
|
38
|
+
book.add_page :title=>'love page2',:author=>'mike1',:content=>'this is the love page2',:section => 'love'
|
39
|
+
book.add_page :title=>'hate page1',:author=>'mike1',:content=>'this is the hate page1',:section => 'hate'
|
40
|
+
book.add_page :title=>'love page3',:author=>'mike1',:content=>'this is the love page3',:section => 'love'
|
41
|
+
book.add_page :title=>'hate page2',:author=>'mike1',:content=>'<img src="http://media2.glamour-sales.com.cn/media/catalog/category/Stroili_banner_02.jpg"></img>this is the hate page2',:section=>'hate'
|
42
|
+
book.generate
|
43
|
+
book.pages[2][:title].should == 'love page3'
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should contains right info at ncx file" do
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should contains right info at opf file" do
|
51
|
+
|
52
|
+
end
|
53
|
+
|
34
54
|
def mobi_book_path(title,output_dir='.')
|
35
55
|
File.join(output_dir,"kindler_generated_mobi_#{title}/#{title}.mobi")
|
36
56
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kindler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-02-05 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement: &
|
16
|
+
requirement: &2161120240 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2161120240
|
25
25
|
description: kindler is a rubygem allow you to generate kindle mobi book very easily
|
26
26
|
email:
|
27
27
|
- mike.d.1984@gmail.com
|
@@ -67,3 +67,4 @@ summary: kindler is a rubygem allow you to generate kindle mobi book very easily
|
|
67
67
|
test_files:
|
68
68
|
- spec/cases/generator_spec.rb
|
69
69
|
- spec/spec_helper.rb
|
70
|
+
has_rdoc:
|