bonfire 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/.rspec +2 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +45 -0
- data/MIT_LICENSE.md +19 -0
- data/README.md +8 -0
- data/Rakefile +9 -0
- data/bonfire.gemspec +31 -0
- data/lib/bonfire.rb +21 -0
- data/lib/bonfire/draft.rb +43 -0
- data/lib/bonfire/new.rb +11 -0
- data/lib/bonfire/scope.rb +7 -0
- data/lib/bonfire/version.rb +3 -0
- data/spec/cli/draft_spec.rb +85 -0
- data/spec/cli/new_spec.rb +84 -0
- data/spec/fixtures/bonfire_no_sections.yml +3 -0
- data/spec/fixtures/bonfire_with_sections.yml +6 -0
- data/spec/fixtures/css/custom.css +3 -0
- data/spec/fixtures/sections/section_1.md +11 -0
- data/spec/fixtures/sections/section_2.md +5 -0
- data/spec/fixtures/sections/section_3.md +3 -0
- data/spec/lib/scope_spec.rb +12 -0
- data/spec/spec_helper.rb +37 -0
- data/templates/draft/draft.haml +8 -0
- data/templates/new/bonfire.yml.tt +23 -0
- data/templates/new/source/css/draft.css +0 -0
- data/templates/new/source/images/.empty_directory +3 -0
- data/templates/new/source/sections/sample_chapter.md +0 -0
- metadata +213 -0
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use default@amazon
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
bonfire (0.0.1)
|
5
|
+
haml (>= 3.0)
|
6
|
+
rdiscount (>= 1.6.8)
|
7
|
+
thor (>= 0.14.0)
|
8
|
+
tilt (>= 1.2.2)
|
9
|
+
|
10
|
+
GEM
|
11
|
+
remote: http://rubygems.org/
|
12
|
+
specs:
|
13
|
+
diff-lcs (1.1.2)
|
14
|
+
fuubar (0.0.3)
|
15
|
+
rspec (~> 2.0)
|
16
|
+
rspec-instafail (~> 0.1.4)
|
17
|
+
ruby-progressbar (~> 0.0.9)
|
18
|
+
haml (3.0.25)
|
19
|
+
nokogiri (1.4.4)
|
20
|
+
rdiscount (1.6.8)
|
21
|
+
rspec (2.5.0)
|
22
|
+
rspec-core (~> 2.5.0)
|
23
|
+
rspec-expectations (~> 2.5.0)
|
24
|
+
rspec-mocks (~> 2.5.0)
|
25
|
+
rspec-core (2.5.1)
|
26
|
+
rspec-expectations (2.5.0)
|
27
|
+
diff-lcs (~> 1.1.2)
|
28
|
+
rspec-instafail (0.1.6)
|
29
|
+
rspec-mocks (2.5.0)
|
30
|
+
ruby-progressbar (0.0.9)
|
31
|
+
thor (0.14.6)
|
32
|
+
tilt (1.2.2)
|
33
|
+
|
34
|
+
PLATFORMS
|
35
|
+
ruby
|
36
|
+
|
37
|
+
DEPENDENCIES
|
38
|
+
bonfire!
|
39
|
+
fuubar
|
40
|
+
haml (>= 3.0)
|
41
|
+
nokogiri
|
42
|
+
rdiscount (>= 1.6.8)
|
43
|
+
rspec (>= 2.5.0)
|
44
|
+
thor (>= 0.14.0)
|
45
|
+
tilt (>= 1.2.2)
|
data/MIT_LICENSE.md
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Copyright (C) 2011 by Infews LLC
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
5
|
+
in the Software without restriction, including without limitation the rights
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
8
|
+
furnished to do so, subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
11
|
+
all copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
THE SOFTWARE.
|
data/README.md
ADDED
data/Rakefile
ADDED
data/bonfire.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "bonfire/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "bonfire"
|
7
|
+
s.version = Bonfire::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Davis W. Frank"]
|
10
|
+
s.email = ["dwfrank+bonfire@infe.ws"]
|
11
|
+
s.homepage = "http://rubygems.org/gems/bonfire"
|
12
|
+
s.summary = %q{Ruby for eBooks}
|
13
|
+
s.description = %q{All the scripts you need to write books in Markdown then publish them via Amazon's Kindle
|
14
|
+
Digital Publishing.}
|
15
|
+
|
16
|
+
s.rubyforge_project = "bonfire"
|
17
|
+
|
18
|
+
s.files = `git ls-files`.split("\n")
|
19
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
20
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
+
s.require_paths = ["lib"]
|
22
|
+
|
23
|
+
s.add_dependency 'tilt', '>= 1.2.2'
|
24
|
+
s.add_dependency 'haml', '>= 3.0'
|
25
|
+
s.add_dependency 'thor', '>= 0.14.0'
|
26
|
+
s.add_dependency 'rdiscount', '>= 1.6.8'
|
27
|
+
|
28
|
+
s.add_development_dependency "rspec", ">= 2.5.0"
|
29
|
+
s.add_development_dependency "fuubar"
|
30
|
+
s.add_development_dependency "nokogiri"
|
31
|
+
end
|
data/lib/bonfire.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'tilt'
|
3
|
+
|
4
|
+
class Bonfire < Thor
|
5
|
+
include Thor::Actions
|
6
|
+
|
7
|
+
@@source_root = File.join(File.dirname(__FILE__), '..')
|
8
|
+
def self.source_root
|
9
|
+
@@source_root
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.template_dir
|
13
|
+
@@template_dir
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
Dir["#{File.dirname(__FILE__)}/bonfire/**/*.rb"].each do |file|
|
19
|
+
require file
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'tilt'
|
3
|
+
require 'rdiscount'
|
4
|
+
require 'yaml'
|
5
|
+
|
6
|
+
class Bonfire < Thor
|
7
|
+
|
8
|
+
desc "draft", "Makes a single HTML file of sections in the correct order"
|
9
|
+
|
10
|
+
def draft
|
11
|
+
Dir.chdir(Dir.pwd) do
|
12
|
+
bonfire = YAML.load(File.open('bonfire.yml')) || {}
|
13
|
+
|
14
|
+
directory File.join(Dir.pwd, 'source/css'), 'output/draft/css'
|
15
|
+
directory File.join(Dir.pwd, 'source/images'), 'output/draft/images'
|
16
|
+
|
17
|
+
book_name = bonfire['book_name']
|
18
|
+
sections = bonfire['sections'].collect do |section|
|
19
|
+
section = "#{section}.md" #unless section.match(/\.md$/)
|
20
|
+
Tilt.new("source/sections/#{section}").render
|
21
|
+
end
|
22
|
+
css_files = Dir.chdir(File.join(Dir.pwd, 'source')) { Dir.glob('css/**/*.css') }
|
23
|
+
|
24
|
+
scope = Scope.build(:title => book_name,
|
25
|
+
:css_files => css_files,
|
26
|
+
:body => sections.join("\n\n<hr/>\n\n"))
|
27
|
+
template = load_template("draft/draft.haml")
|
28
|
+
|
29
|
+
FileUtils.mkdir_p('output/draft')
|
30
|
+
create_file "output/draft/#{book_name}_draft.html" do
|
31
|
+
template.render(scope)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
no_tasks do
|
37
|
+
def load_template(filename)
|
38
|
+
template_path = File.join(Bonfire.source_root, 'templates', filename)
|
39
|
+
Tilt.new(template_path)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
data/lib/bonfire/new.rb
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "A call to 'bonfire draft'" do
|
4
|
+
before :each do
|
5
|
+
@tmp_dir = make_tmp_dir
|
6
|
+
@book_dir = File.join(@tmp_dir, "my_book")
|
7
|
+
|
8
|
+
@thor = Thor.new
|
9
|
+
|
10
|
+
capture_output do
|
11
|
+
Dir.chdir @tmp_dir do
|
12
|
+
@thor.invoke Bonfire, "new", "my_book"
|
13
|
+
end
|
14
|
+
|
15
|
+
Dir.chdir @book_dir do
|
16
|
+
system "cp #{Bonfire.source_root}/spec/fixtures/sections/*.md #{@book_dir}/source/sections"
|
17
|
+
system "cp #{Bonfire.source_root}/spec/fixtures/css/* #{@book_dir}/source/css"
|
18
|
+
system "cp #{Bonfire.source_root}/spec/fixtures/bonfire_with_sections.yml #{@book_dir}/bonfire.yml"
|
19
|
+
|
20
|
+
@thor.invoke Bonfire, 'draft'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
after :each do
|
26
|
+
remove_dir @tmp_dir
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should copy the images directory" do
|
30
|
+
File.exist?("#{@book_dir}/output/draft/images").should be_true
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should copy the images directory contents" do
|
34
|
+
source_images = Dir.chdir "#{@book_dir}/source/images/" do
|
35
|
+
Dir.glob("**/*")
|
36
|
+
end
|
37
|
+
draft_images = Dir.chdir "#{@book_dir}/output/draft/images/" do
|
38
|
+
Dir.glob("**/*")
|
39
|
+
end
|
40
|
+
|
41
|
+
draft_images.should == source_images
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should copy the css directory" do
|
45
|
+
File.exist?("#{@book_dir}/#{}output/draft/css").should be_true
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should copy the css directory contents" do
|
49
|
+
all_files_in("#{@book_dir}/source/css/").should == all_files_in("#{@book_dir}/output/draft/css/")
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should build a single HTML file" do
|
53
|
+
File.exist?("#{@book_dir}/#{}output/draft/my_book_draft.html").should be_true
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "and that file" do
|
57
|
+
before(:each) do
|
58
|
+
@doc = Nokogiri(File.read("#{@book_dir}/output/draft/my_book_draft.html"))
|
59
|
+
@stylesheets_paths = @doc.search('link[@rel=stylesheet]').collect { |n| n["href"] }
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should have the draft css file included" do
|
63
|
+
@stylesheets_paths.should include("css/draft.css")
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should include any writer CSS files" do
|
67
|
+
@stylesheets_paths.should include("css/custom.css")
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should have all of the sections in the body in the correct order" do
|
71
|
+
all_h1s = @doc.search('h1')
|
72
|
+
|
73
|
+
all_h1s.length.should == 3
|
74
|
+
all_h1s[0].content.should match(/^1/)
|
75
|
+
all_h1s[1].content.should match(/^2/)
|
76
|
+
all_h1s[2].content.should match(/^Appendix/)
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should have inserted divider elements between the sections" do
|
80
|
+
@doc.search('hr').length.should == 2
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe "A command of 'bonfire new'" do
|
4
|
+
before :each do
|
5
|
+
@tmp_dir = make_tmp_dir
|
6
|
+
|
7
|
+
@thor = Thor.new
|
8
|
+
end
|
9
|
+
|
10
|
+
after :each do
|
11
|
+
remove_dir @tmp_dir
|
12
|
+
end
|
13
|
+
|
14
|
+
shared_examples_for "generates a book project" do
|
15
|
+
|
16
|
+
it "should make a parent directory for the project" do
|
17
|
+
Dir.chdir "#{@tmp_dir}" do
|
18
|
+
File.directory?("#{@book_name}").should be_true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "and inside it" do
|
23
|
+
|
24
|
+
it "should make a directory for the source" do
|
25
|
+
Dir.chdir "#{@tmp_dir}/#{@book_name}" do
|
26
|
+
File.directory?('source').should be_true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should make a top-level YAML file for meta-data" do
|
31
|
+
Dir.chdir "#{@tmp_dir}/#{@book_name}" do
|
32
|
+
File.exist?("bonfire.yml").should be_true
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should have the project name in the yaml file" do
|
37
|
+
yaml = YAML.load(File.open("#{@tmp_dir}/#{@book_name}/bonfire.yml"))
|
38
|
+
yaml["book_name"].should == @book_name
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should make a directory for the book sections" do
|
42
|
+
Dir.chdir "#{@tmp_dir}/#{@book_name}/source" do
|
43
|
+
File.directory?('sections').should be_true
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "and inside it" do
|
48
|
+
it "should place a sample chapter file" do
|
49
|
+
Dir.chdir "#{@tmp_dir}/#{@book_name}/source/sections" do
|
50
|
+
File.exist?('sample_chapter.md').should be_true
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
describe "with a name" do
|
59
|
+
before :each do
|
60
|
+
Dir.chdir @tmp_dir do
|
61
|
+
@book_name = "my_book"
|
62
|
+
capture_output do
|
63
|
+
@thor.invoke(Bonfire, "new", @book_name)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
it_should_behave_like "generates a book project"
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "without a name" do
|
72
|
+
before :each do
|
73
|
+
Dir.chdir @tmp_dir do
|
74
|
+
@book_name = "bonfire_book"
|
75
|
+
capture_output do
|
76
|
+
@thor.invoke Bonfire, "new"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
it_should_behave_like "generates a book project"
|
82
|
+
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# 1
|
2
|
+
|
3
|
+
## A Dark and Stormy Night
|
4
|
+
|
5
|
+
It was a Dark and Stormy Night. 80 days around the world, we'll find a pot of gold just sitting where the rainbow's ending. Time - we'll fight against the time, and we'll fly on the white wings of the wind. 80 days around the world, no we won't say a word before the ship is really back. Round, round, all around the world. Round, all around the world. Round, all around the world. Round, all around the world.
|
6
|
+
|
7
|
+
Barnaby The Bear's my name, never call me Jack or James, I will sing my way to fame, Barnaby the Bear's my name. Birds taught me to sing, when they took me to their king, first I had to fly, in the sky so high so high, so high so high so high, so - if you want to sing this way, think of what you'd like to say, add a tune and you will see, just how easy it can be. Treacle pudding, fish and chips, fizzy drinks and liquorice, flowers, rivers, sand and sea, snowflakes and the stars are free. La la la la la, la la la la la la la, la la la la la la la, la la la la la la la la la la la la la, so - Barnaby The Bear's my name, never call me Jack or James, I will sing my way to fame, Barnaby the Bear's my name.
|
8
|
+
|
9
|
+
Mutley, you snickering, floppy eared hound. When courage is needed, you're never around. Those medals you wear on your moth-eaten chest should be there for bungling at which you are best. So, stop that pigeon, stop that pigeon, stop that pigeon, stop that pigeon, stop that pigeon, stop that pigeon, stop that pigeon. Howwww! Nab him, jab him, tab him, grab him, stop that pigeon now.
|
10
|
+
|
11
|
+
Ulysses, Ulysses - Soaring through all the galaxies. In search of Earth, flying in to the night. Ulysses, Ulysses - Fighting evil and tyranny, with all his power, and with all of his might. Ulysses - no-one else can do the things you do. Ulysses - like a bolt of thunder from the blue. Ulysses - always fighting all the evil forces bringing peace and justice to all.
|
@@ -0,0 +1,5 @@
|
|
1
|
+
# 2
|
2
|
+
|
3
|
+
## Another chapter
|
4
|
+
|
5
|
+
This night wasn't nearly as stormy. But it was dark. I never spend much time in school but I taught ladies plenty. It's true I hire my body out for pay, hey hey. I've gotten burned over Cheryl Tiegs, blown up for Raquel Welch. But when I end up in the hay it's only hay, hey hey. I might jump an open drawbridge, or Tarzan from a vine. 'Cause I'm the unknown stuntman that makes Eastwood look so fine.
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
require 'thor'
|
6
|
+
require 'bonfire'
|
7
|
+
|
8
|
+
|
9
|
+
require 'rspec'
|
10
|
+
require 'pp'
|
11
|
+
require 'nokogiri'
|
12
|
+
require 'tmpdir'
|
13
|
+
|
14
|
+
def capture_output
|
15
|
+
output = StringIO.new
|
16
|
+
$stdout = output
|
17
|
+
yield
|
18
|
+
output.string
|
19
|
+
ensure
|
20
|
+
$stdout = STDOUT
|
21
|
+
end
|
22
|
+
|
23
|
+
def make_tmp_dir
|
24
|
+
tmp_dir = "#{Dir.tmpdir}/bonfire-spec-dir"
|
25
|
+
remove_dir tmp_dir
|
26
|
+
FileUtils.mkdir_p tmp_dir
|
27
|
+
tmp_dir
|
28
|
+
end
|
29
|
+
|
30
|
+
def remove_dir(dir)
|
31
|
+
FileUtils.rm_r dir if File.exists?(dir)
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def all_files_in(dir)
|
36
|
+
Dir.chdir(dir) { Dir.glob("**/*") }
|
37
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# BOOK NAME
|
2
|
+
# =========
|
3
|
+
#
|
4
|
+
# This is the name of the book. It needs to be a valid file name, so no special characters
|
5
|
+
book_name: <%= book_name %>
|
6
|
+
|
7
|
+
# SECTIONS
|
8
|
+
# ========
|
9
|
+
#
|
10
|
+
# This is a list of files that will be included in the book.
|
11
|
+
# By default, files in the sections/ folder will be included in alphabetical order. Use this section to override
|
12
|
+
# and include in an arbitrary order. The '.md' extension will be added to each filename.
|
13
|
+
#
|
14
|
+
# Example
|
15
|
+
# -------
|
16
|
+
# sections:
|
17
|
+
# - foreward
|
18
|
+
# - fishing_trip
|
19
|
+
# - dinner_afterwards
|
20
|
+
# - the_next_day
|
21
|
+
# - about_the_author
|
22
|
+
|
23
|
+
sections:
|
File without changes
|
File without changes
|
metadata
ADDED
@@ -0,0 +1,213 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bonfire
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Davis W. Frank
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-03-05 00:00:00 -08:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: tilt
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 27
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 2
|
33
|
+
- 2
|
34
|
+
version: 1.2.2
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: haml
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 7
|
46
|
+
segments:
|
47
|
+
- 3
|
48
|
+
- 0
|
49
|
+
version: "3.0"
|
50
|
+
type: :runtime
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: thor
|
54
|
+
prerelease: false
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 39
|
61
|
+
segments:
|
62
|
+
- 0
|
63
|
+
- 14
|
64
|
+
- 0
|
65
|
+
version: 0.14.0
|
66
|
+
type: :runtime
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: rdiscount
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 31
|
77
|
+
segments:
|
78
|
+
- 1
|
79
|
+
- 6
|
80
|
+
- 8
|
81
|
+
version: 1.6.8
|
82
|
+
type: :runtime
|
83
|
+
version_requirements: *id004
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rspec
|
86
|
+
prerelease: false
|
87
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
88
|
+
none: false
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
hash: 27
|
93
|
+
segments:
|
94
|
+
- 2
|
95
|
+
- 5
|
96
|
+
- 0
|
97
|
+
version: 2.5.0
|
98
|
+
type: :development
|
99
|
+
version_requirements: *id005
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: fuubar
|
102
|
+
prerelease: false
|
103
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
hash: 3
|
109
|
+
segments:
|
110
|
+
- 0
|
111
|
+
version: "0"
|
112
|
+
type: :development
|
113
|
+
version_requirements: *id006
|
114
|
+
- !ruby/object:Gem::Dependency
|
115
|
+
name: nokogiri
|
116
|
+
prerelease: false
|
117
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
hash: 3
|
123
|
+
segments:
|
124
|
+
- 0
|
125
|
+
version: "0"
|
126
|
+
type: :development
|
127
|
+
version_requirements: *id007
|
128
|
+
description: |-
|
129
|
+
All the scripts you need to write books in Markdown then publish them via Amazon's Kindle
|
130
|
+
Digital Publishing.
|
131
|
+
email:
|
132
|
+
- dwfrank+bonfire@infe.ws
|
133
|
+
executables: []
|
134
|
+
|
135
|
+
extensions: []
|
136
|
+
|
137
|
+
extra_rdoc_files: []
|
138
|
+
|
139
|
+
files:
|
140
|
+
- .gitignore
|
141
|
+
- .rspec
|
142
|
+
- .rvmrc
|
143
|
+
- Gemfile
|
144
|
+
- Gemfile.lock
|
145
|
+
- MIT_LICENSE.md
|
146
|
+
- README.md
|
147
|
+
- Rakefile
|
148
|
+
- bonfire.gemspec
|
149
|
+
- lib/bonfire.rb
|
150
|
+
- lib/bonfire/draft.rb
|
151
|
+
- lib/bonfire/new.rb
|
152
|
+
- lib/bonfire/scope.rb
|
153
|
+
- lib/bonfire/version.rb
|
154
|
+
- spec/cli/draft_spec.rb
|
155
|
+
- spec/cli/new_spec.rb
|
156
|
+
- spec/fixtures/bonfire_no_sections.yml
|
157
|
+
- spec/fixtures/bonfire_with_sections.yml
|
158
|
+
- spec/fixtures/css/custom.css
|
159
|
+
- spec/fixtures/sections/section_1.md
|
160
|
+
- spec/fixtures/sections/section_2.md
|
161
|
+
- spec/fixtures/sections/section_3.md
|
162
|
+
- spec/lib/scope_spec.rb
|
163
|
+
- spec/spec_helper.rb
|
164
|
+
- templates/draft/draft.haml
|
165
|
+
- templates/new/bonfire.yml.tt
|
166
|
+
- templates/new/source/css/draft.css
|
167
|
+
- templates/new/source/images/.empty_directory
|
168
|
+
- templates/new/source/sections/sample_chapter.md
|
169
|
+
has_rdoc: true
|
170
|
+
homepage: http://rubygems.org/gems/bonfire
|
171
|
+
licenses: []
|
172
|
+
|
173
|
+
post_install_message:
|
174
|
+
rdoc_options: []
|
175
|
+
|
176
|
+
require_paths:
|
177
|
+
- lib
|
178
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
179
|
+
none: false
|
180
|
+
requirements:
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
hash: 3
|
184
|
+
segments:
|
185
|
+
- 0
|
186
|
+
version: "0"
|
187
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
|
+
none: false
|
189
|
+
requirements:
|
190
|
+
- - ">="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
hash: 3
|
193
|
+
segments:
|
194
|
+
- 0
|
195
|
+
version: "0"
|
196
|
+
requirements: []
|
197
|
+
|
198
|
+
rubyforge_project: bonfire
|
199
|
+
rubygems_version: 1.3.7
|
200
|
+
signing_key:
|
201
|
+
specification_version: 3
|
202
|
+
summary: Ruby for eBooks
|
203
|
+
test_files:
|
204
|
+
- spec/cli/draft_spec.rb
|
205
|
+
- spec/cli/new_spec.rb
|
206
|
+
- spec/fixtures/bonfire_no_sections.yml
|
207
|
+
- spec/fixtures/bonfire_with_sections.yml
|
208
|
+
- spec/fixtures/css/custom.css
|
209
|
+
- spec/fixtures/sections/section_1.md
|
210
|
+
- spec/fixtures/sections/section_2.md
|
211
|
+
- spec/fixtures/sections/section_3.md
|
212
|
+
- spec/lib/scope_spec.rb
|
213
|
+
- spec/spec_helper.rb
|