rpub 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/.gitignore +8 -0
  2. data/.rspec +5 -0
  3. data/.travis.yml +5 -0
  4. data/.yardopts +6 -0
  5. data/Gemfile +2 -0
  6. data/Gemfile.lock +51 -0
  7. data/Guardfile +5 -0
  8. data/HISTORY.md +5 -0
  9. data/LICENSE +0 -0
  10. data/README.md +182 -0
  11. data/Rakefile +11 -0
  12. data/bin/rpub +6 -0
  13. data/example/advanced/README +1 -0
  14. data/example/advanced/config.yml +11 -0
  15. data/example/advanced/layout.html +0 -0
  16. data/example/advanced/styles.css +0 -0
  17. data/example/simple/01-introduction.md +3 -0
  18. data/example/simple/02-foo.md +4 -0
  19. data/example/simple/03-bar.md +4 -0
  20. data/example/simple/config.yml +8 -0
  21. data/lib/rpub.rb +53 -0
  22. data/lib/rpub/book.rb +70 -0
  23. data/lib/rpub/chapter.rb +84 -0
  24. data/lib/rpub/commander.rb +14 -0
  25. data/lib/rpub/commands/base.rb +33 -0
  26. data/lib/rpub/commands/clean.rb +55 -0
  27. data/lib/rpub/commands/compile.rb +56 -0
  28. data/lib/rpub/commands/help.rb +37 -0
  29. data/lib/rpub/commands/main.rb +45 -0
  30. data/lib/rpub/commands/package.rb +45 -0
  31. data/lib/rpub/commands/preview.rb +56 -0
  32. data/lib/rpub/compilation_helpers.rb +43 -0
  33. data/lib/rpub/compressor.rb +46 -0
  34. data/lib/rpub/epub.rb +37 -0
  35. data/lib/rpub/epub/container.rb +14 -0
  36. data/lib/rpub/epub/content.rb +80 -0
  37. data/lib/rpub/epub/cover.rb +27 -0
  38. data/lib/rpub/epub/html_toc.rb +25 -0
  39. data/lib/rpub/epub/toc.rb +35 -0
  40. data/lib/rpub/hash_delegation.rb +23 -0
  41. data/lib/rpub/subclass_tracker.rb +53 -0
  42. data/lib/rpub/version.rb +3 -0
  43. data/lib/rpub/xml_file.rb +14 -0
  44. data/rpub.gemspec +52 -0
  45. data/spec/fixtures/clean/config.yml +2 -0
  46. data/spec/fixtures/clean/example.epub +0 -0
  47. data/spec/fixtures/clean/preview.html +0 -0
  48. data/spec/fixtures/no_files/config.yml +0 -0
  49. data/spec/fixtures/preview/a.md +1 -0
  50. data/spec/fixtures/preview/b.md +1 -0
  51. data/spec/fixtures/preview/config.yml +2 -0
  52. data/spec/rpub/book_spec.rb +62 -0
  53. data/spec/rpub/chapter_spec.rb +61 -0
  54. data/spec/rpub/commands/clean_spec.rb +46 -0
  55. data/spec/rpub/commands/main_spec.rb +26 -0
  56. data/spec/rpub/commands/preview_spec.rb +42 -0
  57. data/spec/rpub_spec.rb +7 -0
  58. data/spec/spec_helper.rb +21 -0
  59. data/support/layout.html +22 -0
  60. data/support/styles.css +66 -0
  61. metadata +310 -0
@@ -0,0 +1,2 @@
1
+ ---
2
+ title: foo
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rpub::Book do
4
+ let(:subject) { described_class.new('some_file', 'title' => 'My "Awesome" Title!', 'version' => '1.0.3') }
5
+
6
+ it 'should start with an empty configuration' do
7
+ described_class.new('some_file').config.should == {}
8
+ end
9
+
10
+ it { should respond_to(:title) }
11
+ its(:title) { should == 'My "Awesome" Title!' }
12
+ its(:filename) { should == 'my-awesome-title-1.0.3.epub' }
13
+
14
+ describe 'chapters' do
15
+ before { subject.add_chapter 'foo' }
16
+
17
+ it { should have(1).chapters }
18
+
19
+ it { should be_kind_of(Enumerable) }
20
+
21
+ it 'should start with no chapters' do
22
+ described_class.new('foo').should have(0).chapters
23
+ end
24
+
25
+ it 'should allow chaining multiple calls' do
26
+ subject << 'foo' << 'bar'
27
+ subject.should have(3).chapters
28
+ end
29
+
30
+ it 'should yield chapters' do
31
+ yielded = false
32
+ subject.each { |c| yielded = true }
33
+ yielded.should be_true
34
+ end
35
+ end
36
+
37
+ describe '#uid' do
38
+ it 'should change when chapters change' do
39
+ Rpub::Book.new('bar').add_chapter('foo').should_not == subject.uid
40
+ end
41
+
42
+ it 'should change when config changes' do
43
+ Rpub::Book.new('bar', 'baz' => 'qux').should_not == subject.uid
44
+ end
45
+ end
46
+
47
+ describe '#images' do
48
+ before { subject << '![foo](bar)' << '![baz](qux)' << '![bla](qux)' }
49
+ it { should have(2).images }
50
+ its(:images) { should include('bar') }
51
+ its(:images) { should include('qux') }
52
+ end
53
+
54
+ describe '#outline' do
55
+ before { subject << '# foo' << '## bar' }
56
+ its(:outline) { should have(2).elements }
57
+ it 'should combine chapter outlines' do
58
+ subject.outline.first[0].should == 'chapter-0-foo.html'
59
+ subject.outline.first[1][0].text.should == 'foo'
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,61 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rpub::Chapter do
4
+ let(:subject) { described_class.new('foo', 1, 'document') }
5
+
6
+ its(:content) { should == 'foo' }
7
+ its(:number) { should == 1 }
8
+ its(:layout) { should == 'document' }
9
+
10
+ describe '#uid' do
11
+ it 'should change when content changes' do
12
+ subject.uid.should_not == described_class.new('bar', 1, 'bar').uid
13
+ end
14
+
15
+ it 'should change when layout changes' do
16
+ subject.uid.should_not == described_class.new('foo', 1, 'qux').uid
17
+ end
18
+
19
+ it 'should change when content changes' do
20
+ subject.uid.should_not == described_class.new('foo', 2, 'bar').uid
21
+ end
22
+ end
23
+
24
+ describe '#id' do
25
+ its(:id) { should == 'chapter-1' }
26
+ end
27
+
28
+ describe '#filename' do
29
+ its(:filename) { should == 'chapter-1-untitled.html' }
30
+ end
31
+
32
+ describe '#title' do
33
+ context 'without a suitable markdown title' do
34
+ its(:title) { should == 'untitled' }
35
+ end
36
+
37
+ context 'with a markdown heading' do
38
+ let(:subject) { described_class.new('# My Title', 1, 'bar') }
39
+ its(:title) { should == 'My Title' }
40
+ end
41
+ end
42
+
43
+ describe 'markdown parsing' do
44
+ let(:subject) { described_class.new('foo', 1, nil) }
45
+ its(:to_html) { should == "<p>foo</p>\n" }
46
+ end
47
+
48
+ describe '#images' do
49
+ let(:subject) { described_class.new('![alt](foo.png)', 1, 'document') }
50
+
51
+ it { should have(1).images }
52
+ its('images.first') { should == 'foo.png' }
53
+ end
54
+
55
+ describe '#outline' do
56
+ let(:subject) { described_class.new("# foo\n\nbla bla bla \n\n## bar\n\n# baz", 1, nil) }
57
+ it 'should list headings in order' do
58
+ subject.outline.map(&:text).should == %w[foo bar baz]
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rpub::Commands::Clean do
4
+ before do
5
+ Dir.chdir File.join(FIXTURES_DIRECTORY, 'clean')
6
+ end
7
+
8
+ after do
9
+ FileUtils.touch 'preview.html'
10
+ FileUtils.touch 'example.epub'
11
+ end
12
+
13
+ it 'should remove example.epub file' do
14
+ expect {
15
+ described_class.new.invoke
16
+ }.to remove_file('example.epub')
17
+ end
18
+
19
+ it 'should remove preview.html file' do
20
+ expect {
21
+ described_class.new.invoke
22
+ }.to remove_file('preview.html')
23
+ end
24
+
25
+ context 'when in dry run mode' do
26
+ let(:buffer) { StringIO.new }
27
+ let(:subject) { described_class.new(['-d'], buffer) }
28
+
29
+ it 'should print preview.html' do
30
+ subject.invoke
31
+ buffer.string.should include('preview.html')
32
+ end
33
+
34
+ it 'should not print non-existant files' do
35
+ FileUtils.rm 'preview.html'
36
+ subject.invoke
37
+ buffer.string.should_not include('preview.html')
38
+ end
39
+
40
+ it 'should not remove existing files' do
41
+ expect {
42
+ subject.invoke
43
+ }.to_not remove_file('preview.html')
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rpub::Commands::Main do
4
+ let(:buffer) { StringIO.new }
5
+
6
+ it 'should default to help text' do
7
+ described_class.new([], buffer).invoke
8
+ buffer.string.should =~ /Display command reference/
9
+ end
10
+
11
+ it 'should raise error when a subcommand remains' do
12
+ expect {
13
+ described_class.new(['foo'], buffer).invoke
14
+ }.should raise_error(Rpub::InvalidSubcommand)
15
+ end
16
+
17
+ it 'should print the version number' do
18
+ described_class.new(['-v'], buffer).invoke
19
+ buffer.string.should =~ /rpub \d+\.\d+\.\d+/
20
+ end
21
+
22
+ it 'should print help text' do
23
+ described_class.new(['-h'], buffer).invoke
24
+ buffer.string.should =~ /Display command reference/
25
+ end
26
+ end
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rpub::Commands::Preview do
4
+ before do
5
+ Dir.chdir File.join(FIXTURES_DIRECTORY, 'preview')
6
+ end
7
+
8
+ after do
9
+ File.unlink 'preview.html' if File.exist?('preview.html')
10
+ File.unlink 'foo.bar' if File.exist?('foo.bar')
11
+ end
12
+
13
+ context 'generated content' do
14
+ before { Rpub::Commands::Preview.new.invoke }
15
+ let(:subject) { File.read('preview.html') }
16
+
17
+ it { should include('<p>foo</p>') }
18
+ it { should include('<p>bar</p>') }
19
+ it { should match(/foo.*bar/m) }
20
+ it { should match(/<head>/) }
21
+ end
22
+
23
+ it 'should create new preview file' do
24
+ expect {
25
+ Rpub::Commands::Preview.new.invoke
26
+ }.to create_file('preview.html')
27
+ end
28
+
29
+ it 'should do nothing when there are no files to preview' do
30
+ Dir.chdir File.join(FIXTURES_DIRECTORY, 'no_files')
31
+ expect {
32
+ Rpub::Commands::Preview.new.invoke
33
+ }.to_not create_file('preview.html')
34
+ end
35
+
36
+ it 'should allow overriding the filename' do
37
+ expect {
38
+ Rpub::Commands::Preview.new(['-o', 'foo.bar']).invoke
39
+ }.to create_file('foo.bar')
40
+ end
41
+
42
+ end
data/spec/rpub_spec.rb ADDED
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rpub do
4
+ it 'should define a version number' do
5
+ Rpub::VERSION.should =~ /\d+\.\d+\.\d+/
6
+ end
7
+ end
@@ -0,0 +1,21 @@
1
+ require 'rpub'
2
+
3
+ FIXTURES_DIRECTORY = File.expand_path('../fixtures', __FILE__)
4
+
5
+ RSpec::Matchers.define :remove_file do |filename|
6
+ match do |block|
7
+ before = File.exist?(filename)
8
+ block.call
9
+ after = File.exist?(filename)
10
+ before && !after
11
+ end
12
+ end
13
+
14
+ RSpec::Matchers.define :create_file do |filename|
15
+ match do |block|
16
+ before = File.exist?(filename)
17
+ block.call
18
+ after = File.exist?(filename)
19
+ !before && after
20
+ end
21
+ end
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml">
4
+ <head>
5
+ <%
6
+ extend ::Kramdown::Utils::Html
7
+ title = ''
8
+ if @converter
9
+ h = @converter.root.children.find {|c| c.type == :header}
10
+ if h
11
+ collector = lambda {|c| c.children.collect {|cc| cc.type == :text ? escape_html(cc.value, :text) : collector.call(cc)}.join('')}
12
+ title = collector.call(h)
13
+ end
14
+ end
15
+ %>
16
+ <title><%= title %></title>
17
+ <link rel="stylesheet" href="styles.css" type="text/css" />
18
+ </head>
19
+ <body>
20
+ <%= @body %>
21
+ </body>
22
+ </html>
@@ -0,0 +1,66 @@
1
+ body {
2
+ margin: 3%;
3
+ font-family: Georgia, serif;
4
+ line-height: 1.4em;
5
+ }
6
+
7
+ h1, h2, h3, h4, h5, h6, p, ul, ol, dl, table, img, pre {
8
+ display: block;
9
+ margin: 1.4em 0;
10
+ }
11
+
12
+ h1, h2, h3, h4, h5, h6 {
13
+ font-family: sans-serif;
14
+ page-break-after: avoid;
15
+ page-break-inside: avoid;
16
+ }
17
+
18
+ h1 {
19
+ margin-bottom: 2.8em;
20
+ page-break-before: always;
21
+ }
22
+
23
+ h2 {
24
+ margin-top: 2.8em;
25
+ }
26
+
27
+ abbr {
28
+ font-size: 86.5%;
29
+ letter-spacing: .1em;
30
+ cursor: help;
31
+ }
32
+
33
+ .footnotes {
34
+ font-family: sans-serif;
35
+ font-size: 86.5%;
36
+ color: #999;
37
+ }
38
+
39
+ .footnotes ol {
40
+ list-style-type: decimal-leading-zero;
41
+ margin: 2.8em 0 1.4em 0;
42
+ padding: 0 0 0 2.2em;
43
+ }
44
+
45
+ pre {
46
+ margin-left: 2em;
47
+ }
48
+
49
+ pre, code, kbd, var, tt, .codeRay, .code {
50
+ font-family: Menlo, monospace;
51
+ font-size: 86.5%;
52
+ color: #333;
53
+ page-break-inside: avoid;
54
+ }
55
+
56
+ .footnotes pre, .footnotes code, .footnotes kbd, .footnotes var, .footnotes tt, .footnotes .codeRay, .footnotes .code {
57
+ color: #888;
58
+ }
59
+
60
+ dt {
61
+ font-style: italic;
62
+ }
63
+
64
+ dd {
65
+ margin: 0 0 0 1.4em;
66
+ }
metadata ADDED
@@ -0,0 +1,310 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rpub
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Arjan van der Gaag
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-04-19 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: typogruby
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: kramdown
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rubyzip
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: builder
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: yard
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rspec
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rake
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: guard
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: guard-rspec
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: rb-fsevent
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: growl
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ description: an ePub generation library in Ruby
191
+ email: arjan@arjanvandergaag.nl
192
+ executables:
193
+ - rpub
194
+ extensions: []
195
+ extra_rdoc_files:
196
+ - LICENSE
197
+ - README.md
198
+ - HISTORY.md
199
+ files:
200
+ - .gitignore
201
+ - .rspec
202
+ - .travis.yml
203
+ - .yardopts
204
+ - Gemfile
205
+ - Gemfile.lock
206
+ - Guardfile
207
+ - HISTORY.md
208
+ - LICENSE
209
+ - README.md
210
+ - Rakefile
211
+ - bin/rpub
212
+ - example/advanced/README
213
+ - example/advanced/config.yml
214
+ - example/advanced/layout.html
215
+ - example/advanced/styles.css
216
+ - example/simple/01-introduction.md
217
+ - example/simple/02-foo.md
218
+ - example/simple/03-bar.md
219
+ - example/simple/config.yml
220
+ - lib/rpub.rb
221
+ - lib/rpub/book.rb
222
+ - lib/rpub/chapter.rb
223
+ - lib/rpub/commander.rb
224
+ - lib/rpub/commands/base.rb
225
+ - lib/rpub/commands/clean.rb
226
+ - lib/rpub/commands/compile.rb
227
+ - lib/rpub/commands/help.rb
228
+ - lib/rpub/commands/main.rb
229
+ - lib/rpub/commands/package.rb
230
+ - lib/rpub/commands/preview.rb
231
+ - lib/rpub/compilation_helpers.rb
232
+ - lib/rpub/compressor.rb
233
+ - lib/rpub/epub.rb
234
+ - lib/rpub/epub/container.rb
235
+ - lib/rpub/epub/content.rb
236
+ - lib/rpub/epub/cover.rb
237
+ - lib/rpub/epub/html_toc.rb
238
+ - lib/rpub/epub/toc.rb
239
+ - lib/rpub/hash_delegation.rb
240
+ - lib/rpub/subclass_tracker.rb
241
+ - lib/rpub/version.rb
242
+ - lib/rpub/xml_file.rb
243
+ - rpub.gemspec
244
+ - spec/fixtures/clean/config.yml
245
+ - spec/fixtures/clean/example.epub
246
+ - spec/fixtures/clean/preview.html
247
+ - spec/fixtures/no_files/config.yml
248
+ - spec/fixtures/preview/a.md
249
+ - spec/fixtures/preview/b.md
250
+ - spec/fixtures/preview/config.yml
251
+ - spec/rpub/book_spec.rb
252
+ - spec/rpub/chapter_spec.rb
253
+ - spec/rpub/commands/clean_spec.rb
254
+ - spec/rpub/commands/main_spec.rb
255
+ - spec/rpub/commands/preview_spec.rb
256
+ - spec/rpub_spec.rb
257
+ - spec/spec_helper.rb
258
+ - support/layout.html
259
+ - support/styles.css
260
+ homepage: http://avdgaag.github.com/rpub
261
+ licenses: []
262
+ post_install_message:
263
+ rdoc_options:
264
+ - --charset=UTF-8
265
+ require_paths:
266
+ - lib
267
+ required_ruby_version: !ruby/object:Gem::Requirement
268
+ none: false
269
+ requirements:
270
+ - - ! '>='
271
+ - !ruby/object:Gem::Version
272
+ version: '0'
273
+ segments:
274
+ - 0
275
+ hash: 756011084715788975
276
+ required_rubygems_version: !ruby/object:Gem::Requirement
277
+ none: false
278
+ requirements:
279
+ - - ! '>='
280
+ - !ruby/object:Gem::Version
281
+ version: '0'
282
+ segments:
283
+ - 0
284
+ hash: 756011084715788975
285
+ requirements: []
286
+ rubyforge_project:
287
+ rubygems_version: 1.8.22
288
+ signing_key:
289
+ specification_version: 3
290
+ summary: ! 'rPub is a command-line tool that generates a collection of plain text
291
+ input files into an eBook in ePub format. It provides several related functions
292
+ to make working with ePub files a little easier: * Generation of table of contents
293
+ * Tracking of references to tables or figures * Validation of output file * Packaging
294
+ your eBook in an archive with additional README file * Very simple version control'
295
+ test_files:
296
+ - spec/fixtures/clean/config.yml
297
+ - spec/fixtures/clean/example.epub
298
+ - spec/fixtures/clean/preview.html
299
+ - spec/fixtures/no_files/config.yml
300
+ - spec/fixtures/preview/a.md
301
+ - spec/fixtures/preview/b.md
302
+ - spec/fixtures/preview/config.yml
303
+ - spec/rpub/book_spec.rb
304
+ - spec/rpub/chapter_spec.rb
305
+ - spec/rpub/commands/clean_spec.rb
306
+ - spec/rpub/commands/main_spec.rb
307
+ - spec/rpub/commands/preview_spec.rb
308
+ - spec/rpub_spec.rb
309
+ - spec/spec_helper.rb
310
+ has_rdoc: