epubforge 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +17 -10
- data/VERSION +1 -1
- data/bin/epubforge +1 -1
- data/config/actions/epub.rb +50 -0
- data/config/actions/forge.rb +34 -13
- data/config/actions/git.rb +106 -0
- data/config/actions/help.rb +13 -13
- data/config/actions/html.rb +33 -0
- data/config/actions/mobi.rb +60 -0
- data/config/actions/new.rb +182 -0
- data/config/actions/word_count.rb +26 -24
- data/config/{actions → actions_to_ignore}/generate.rb +1 -1
- data/config/{actions → actions_to_ignore}/generate_chapter.rb +0 -0
- data/config/{actions → actions_to_ignore}/git_backup.rb +2 -2
- data/config/{actions → actions_to_ignore}/globals.rb +1 -1
- data/config/{actions → actions_to_ignore}/kindle.rb +3 -3
- data/config/{actions → actions_to_ignore}/local_action.rb +1 -1
- data/config/{actions → actions_to_ignore}/mobify.rb +3 -3
- data/config/actions_to_ignore/notes_to_epub.rb +19 -0
- data/config/actions_to_ignore/notes_to_kindle.rb +18 -0
- data/config/{actions → actions_to_ignore}/spell.rb +1 -1
- data/config/{actions → actions_to_ignore}/version.rb +3 -3
- data/config/{actions → actions_to_ignore}/wrap_scene_notes_in_hidden_div.rb +1 -1
- data/config/converters/epub_to_mobi.calibre.rb +8 -0
- data/config/converters/epub_to_mobi.kindlegen.rb +11 -0
- data/config/html_translators/default_kramdown.html_translator.rb +9 -0
- data/config/html_translators/default_markdown.html_translator.rb +10 -0
- data/config/html_translators/default_markdown_pandoc.html_translator.rb +10 -0
- data/config/html_translators/default_textile_pandoc.html_translator.rb +8 -0
- data/config/html_translators/default_xhtml.html_translator.rb +7 -0
- data/config/html_translators/fallback_html.html_translator.rb +9 -0
- data/config/html_translators/fallback_markdown.html_translator.rb +8 -0
- data/config/html_translators/fallback_textile.html_translator.rb +7 -0
- data/config/html_translators/fallback_txt.html_translator.rb +8 -0
- data/config/html_translators/fallback_unknown.html_translator.rb +7 -0
- data/lib/epubforge.rb +37 -82
- data/lib/{action/thor_action.rb → epubforge/action/action.rb} +89 -69
- data/lib/epubforge/action/action2.rb +109 -0
- data/lib/epubforge/action/action_definition.rb +62 -0
- data/lib/epubforge/action/actions_lookup.rb +45 -0
- data/lib/epubforge/action/chatterbox.rb +93 -0
- data/lib/{action → epubforge/action}/cli_command.rb +2 -2
- data/lib/{action → epubforge/action}/cli_sequence.rb +0 -0
- data/lib/{action → epubforge/action}/file_transformer.rb +0 -0
- data/lib/{action → epubforge/action}/hooks_interface.rb +2 -2
- data/lib/{action → epubforge/action}/run_description.rb +12 -9
- data/lib/{action → epubforge/action}/runner.rb +23 -24
- data/lib/{epub → epubforge/builder}/assets/asset.rb +1 -1
- data/lib/{epub → epubforge/builder}/assets/font.rb +1 -1
- data/lib/epubforge/builder/assets/html.rb +9 -0
- data/lib/{epub → epubforge/builder}/assets/image.rb +1 -1
- data/lib/epubforge/builder/assets/markdown.rb +9 -0
- data/lib/{epub → epubforge/builder}/assets/page.rb +12 -4
- data/lib/{epub → epubforge/builder}/assets/stylesheet.rb +1 -1
- data/lib/epubforge/builder/assets/textile.rb +9 -0
- data/lib/epubforge/builder/assets/xhtml.rb +9 -0
- data/lib/epubforge/builder/builder.rb +134 -0
- data/lib/{epub/builder.rb → epubforge/builder/epub.rb} +58 -161
- data/lib/epubforge/builder/html.rb +22 -0
- data/lib/epubforge/builder/packager.rb +16 -0
- data/lib/epubforge/core_extensions/array.rb +2 -0
- data/lib/{core_extensions → epubforge/core_extensions}/kernel.rb +0 -0
- data/lib/epubforge/core_extensions/nil_class.rb +2 -0
- data/lib/epubforge/core_extensions/object.rb +24 -0
- data/lib/{core_extensions → epubforge/core_extensions}/string.rb +1 -5
- data/lib/{custom_helpers.rb → epubforge/custom_helpers.rb} +0 -1
- data/lib/{errors.rb → epubforge/exceptions/errors.rb} +0 -0
- data/lib/{project → epubforge/project}/project.rb +23 -17
- data/lib/epubforge/utils/action_loader.rb +8 -0
- data/lib/epubforge/utils/class_loader.rb +102 -0
- data/lib/epubforge/utils/converter.rb +94 -0
- data/lib/{utils → epubforge/utils}/downloader.rb +0 -0
- data/lib/{utils → epubforge/utils}/file_orderer.rb +0 -0
- data/lib/epubforge/utils/file_path.rb +8 -0
- data/lib/epubforge/utils/html_translator.rb +126 -0
- data/lib/epubforge/utils/html_translator_queue.rb +113 -0
- data/lib/epubforge/utils/htmlizer.rb +61 -0
- data/lib/{utils → epubforge/utils}/misc.rb +0 -0
- data/lib/epubforge/utils/root_path.rb +8 -0
- data/lib/epubforge/utils/settings.rb +147 -0
- data/lib/epubforge/utils/template_evaluator.rb +7 -0
- data/templates/{default/book/afterword.markdown.template → project/book/afterword.markdown} +0 -0
- data/templates/project/book/chapter-%0000chapter%.markdown.template +4 -0
- data/templates/{default → project}/book/cover.xhtml.template +2 -2
- data/templates/{default/book/foreword.markdown.template → project/book/foreword.markdown} +0 -0
- data/templates/{default → project}/book/images/cover.png +0 -0
- data/templates/{default/book/stylesheets/stylesheet.css.template → project/book/stylesheets/stylesheet.css} +0 -0
- data/templates/project/book/title_page.markdown.template +5 -0
- data/templates/project/notes/character.%character.name_for_file%.markdown.template +15 -0
- data/templates/{default → project}/notes/images/cover.png +0 -0
- data/templates/{default/notes/stylesheets/stylesheet.css.template → project/notes/stylesheets/stylesheet.css} +0 -0
- data/templates/{default → project}/settings/actions/local_action.rb.example +1 -1
- data/templates/project/settings/config.rb.template +70 -0
- data/templates/project/settings/html_translators/example_translator.rb +29 -0
- data/templates/{default → project}/settings/wordcount.template +1 -1
- data/test/answers01.yml +30 -0
- data/test/helper.rb +62 -39
- data/test/misc/config.rb +5 -7
- data/test/test_epubforge.rb +18 -14
- data/test/{test_htmlizers.rb → test_html_translators.rb} +4 -8
- data/test/test_template_evaluator.rb +42 -0
- data/test/test_utils.rb +0 -11
- metadata +186 -189
- data/config/actions/gitify.rb +0 -72
- data/config/actions/init.rb +0 -138
- data/config/actions/notes_to_epub.rb +0 -18
- data/config/actions/notes_to_kindle.rb +0 -17
- data/config/htmlizers.rb +0 -70
- data/lib/action/actions_lookup.rb +0 -45
- data/lib/core_extensions/array.rb +0 -5
- data/lib/core_extensions/nil_class.rb +0 -5
- data/lib/core_extensions/object.rb +0 -5
- data/lib/epub/assets/html.rb +0 -8
- data/lib/epub/assets/markdown.rb +0 -8
- data/lib/epub/assets/textile.rb +0 -8
- data/lib/epub/assets/xhtml.rb +0 -8
- data/lib/epub/packager.rb +0 -16
- data/lib/utils/action_loader.rb +0 -7
- data/lib/utils/class_loader.rb +0 -102
- data/lib/utils/directory_builder.rb +0 -181
- data/lib/utils/file_path.rb +0 -152
- data/lib/utils/html_translator.rb +0 -100
- data/lib/utils/html_translator_queue.rb +0 -70
- data/lib/utils/htmlizer.rb +0 -92
- data/lib/utils/root_path.rb +0 -20
- data/lib/utils/settings.rb +0 -146
- data/lib/utils/template_evaluator.rb +0 -20
- data/templates/default/book/chapter-%i%.markdown.sequence +0 -4
- data/templates/default/book/title_page.markdown.template +0 -4
- data/templates/default/notes/character.named.markdown.template +0 -4
- data/templates/default/payload.rb +0 -65
- data/templates/default/settings/config.rb.form +0 -55
- data/templates/default/settings/htmlizers.rb +0 -0
- data/test/test_directory_builder.rb +0 -141
@@ -0,0 +1,29 @@
|
|
1
|
+
# # Define only one translator per file.
|
2
|
+
# #
|
3
|
+
# # This htmlizer leaves the input file unaltered
|
4
|
+
# # Uncomment the line below, and the matching 'end' statement at the end
|
5
|
+
# EpubForge::Utils::HtmlTranslator.new do
|
6
|
+
# # format() describes the file extension that this translator will accept. It's a symbol, so do
|
7
|
+
# # :txt rather than .txt, for example.
|
8
|
+
# format :xhtml
|
9
|
+
# # group() describes which group it belongs in, and therefore the priority of this translator.
|
10
|
+
# # From most to least important, valid groups are :preferred, :user, :default, and :fallback
|
11
|
+
# group :default
|
12
|
+
#
|
13
|
+
# # executable(): The executable that will be substituted into the {{x}} portion of the command
|
14
|
+
# # that will be executed. If you don't give it the name of
|
15
|
+
# # a program in your path, or an absolute filepath, the translator will respond to translation
|
16
|
+
# # requests with "not installed", and a lower-priority translator will be sought.
|
17
|
+
# executable "false"
|
18
|
+
#
|
19
|
+
# # cmd() What to run.
|
20
|
+
# # {{f}} will be replaced with the filename
|
21
|
+
# # {{o}} will be replaced with options
|
22
|
+
# # {{x}} will be replaced with the name of the executable
|
23
|
+
# cmd "cat {{f}}"
|
24
|
+
#
|
25
|
+
# # Putting it all together: This translator just says "if you come across an XHTML file, just
|
26
|
+
# # include it unaltered."
|
27
|
+
# #
|
28
|
+
# # Uncomment the 'end' line, cuz Ruby.
|
29
|
+
# end
|
data/test/answers01.yml
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
---
|
2
|
+
:answers:
|
3
|
+
:chapter: !ruby/range
|
4
|
+
begin: 1
|
5
|
+
end: 3
|
6
|
+
excl: false
|
7
|
+
:book:
|
8
|
+
:author: Wilberforce Poncer
|
9
|
+
:title: The Courtesan of Fate
|
10
|
+
:cover:
|
11
|
+
:license: You Owe Me All the Money Limited License, v. 2.1
|
12
|
+
:use_git: true
|
13
|
+
:git:
|
14
|
+
:repo_id: abcdef0123456789
|
15
|
+
:backup_type: Back up to a remote host.
|
16
|
+
:host: myhost.somewhere.com
|
17
|
+
:user: andersbr
|
18
|
+
:repo: /home/andersbr/git
|
19
|
+
:character:
|
20
|
+
- :age: '27'
|
21
|
+
:name: Winifred Burkle
|
22
|
+
:summary: Adorkable whiz kid.
|
23
|
+
:description: Pylea sucks. Never going back.
|
24
|
+
:name_for_file: winifred_burkle
|
25
|
+
|
26
|
+
- :age: '324'
|
27
|
+
:name: Angel
|
28
|
+
:summary: Bitey vampire
|
29
|
+
:description: Broody as hell.
|
30
|
+
:name_for_file: angel
|
data/test/helper.rb
CHANGED
@@ -1,39 +1,46 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
3
|
-
require 'shoulda'
|
1
|
+
# require 'bundler'
|
2
|
+
# require 'shoulda'
|
4
3
|
require 'stringio'
|
5
|
-
require '
|
4
|
+
require 'fun_with_testing'
|
6
5
|
|
7
|
-
begin
|
8
|
-
|
9
|
-
rescue Bundler::BundlerError => e
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
require 'test/unit'
|
16
|
-
|
17
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
18
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
6
|
+
# begin
|
7
|
+
# Bundler.setup(:default, :development)
|
8
|
+
# rescue Bundler::BundlerError => e
|
9
|
+
# $stderr.puts e.message
|
10
|
+
# $stderr.puts "Run `bundle install` to install missing gems"
|
11
|
+
# exit e.status_code
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# require 'test/unit'
|
19
15
|
require 'epubforge'
|
20
16
|
|
17
|
+
EpubForge.gem_test_mode = true
|
18
|
+
|
21
19
|
module EpubForge
|
22
|
-
class TestCase <
|
20
|
+
class TestCase < FunWith::Testing::TestCase
|
21
|
+
self.gem_to_test = EpubForge
|
22
|
+
|
23
|
+
include EpubForge::Utils
|
24
|
+
include FunWith::Testing::Assertions::Basics
|
25
|
+
include FunWith::Testing::Assertions::FunWithFiles
|
26
|
+
|
23
27
|
protected
|
24
28
|
def create_project( verbose = false, &block )
|
25
|
-
|
29
|
+
verbose = true
|
30
|
+
FunWith::Files::DirectoryBuilder.tmpdir do |d|
|
26
31
|
pipe_output_to = (verbose ? $stdout : StringIO.new)
|
27
32
|
@project_dir = d.current_path.join("project")
|
28
33
|
|
29
34
|
@printout = EpubForge.collect_stdout( pipe_output_to ) do # collect_stdout(STDOUT) to see what's being outputted.
|
30
|
-
EpubForge::Action::Runner.new.exec( "
|
35
|
+
@returned = EpubForge::Action::Runner.new.exec( "new", @project_dir, fill_in_project_options )
|
31
36
|
end
|
37
|
+
|
38
|
+
assert_directory( @project_dir, "Project directory doesn't exist. Cannot proceed." )
|
32
39
|
|
33
|
-
|
40
|
+
@default_opts = fill_in_project_options[:answers]
|
41
|
+
@book_title = @default_opts[:book][:title]
|
34
42
|
|
35
|
-
@
|
36
|
-
@chapter_count = fill_in_project_options[:answers][:chapter_count].to_i
|
43
|
+
@chapter_count = @default_opts[:chapter].last
|
37
44
|
@ebook_file = @project_dir.join( @book_title.epf_underscorize + ".epub" )
|
38
45
|
@notes_file = @project_dir.join( @book_title.epf_underscorize + ".notes.epub" )
|
39
46
|
|
@@ -42,26 +49,42 @@ module EpubForge
|
|
42
49
|
end
|
43
50
|
|
44
51
|
def fill_in_project_options( opts = {} )
|
45
|
-
template_options =
|
46
|
-
:answers => {
|
47
|
-
:chapter_count => 3,
|
48
|
-
:title => "The Courtesan of Fate",
|
49
|
-
:author => "Wilberforce Poncer",
|
50
|
-
:license => "You Owe Me All the Money Limited License, v. 2.1",
|
51
|
-
:use_git => true,
|
52
|
-
:git => {
|
53
|
-
:repo_id => "abcdef0123456789",
|
54
|
-
:backup_type => "Back up to a remote host.",
|
55
|
-
:host => "myhost.somewhere.com",
|
56
|
-
:user => "andersbr",
|
57
|
-
:repo => "/home/andersbr/git"
|
58
|
-
}
|
59
|
-
}
|
60
|
-
}
|
61
|
-
|
52
|
+
template_options = YAML.load( EpubForge.root("test", "answers01.yml").read )
|
62
53
|
template_options[:answers].merge(opts)
|
63
54
|
|
64
55
|
template_options
|
65
56
|
end
|
57
|
+
|
58
|
+
def tempdir( &block )
|
59
|
+
FunWith::Files::FilePath.tmpdir do |d|
|
60
|
+
@tmpdir = d
|
61
|
+
yield
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def runner_exec( *args )
|
66
|
+
if @runner_exec_quiet
|
67
|
+
@runner_exec_printout = EpubForge.collect_stdout do
|
68
|
+
@run_description = EpubForge::Action::Runner.new.exec( *args )
|
69
|
+
end
|
70
|
+
else
|
71
|
+
@run_description = EpubForge::Action::Runner.new.exec( *args )
|
72
|
+
end
|
73
|
+
|
74
|
+
if @run_description.errors? # , "running forge caused errors (#{run_desc.errors.length})"
|
75
|
+
error = @run_description.errors.first
|
76
|
+
case @runner_exec_errors_action
|
77
|
+
when :raise
|
78
|
+
raise error
|
79
|
+
when :print
|
80
|
+
puts "Runner.new.exec() args = #{args.inspect}"
|
81
|
+
puts error.message
|
82
|
+
puts "\t" + error.backtrace.map{ |line| "\t#{line}"}.join("\n")
|
83
|
+
puts "\n"
|
84
|
+
when :ignore
|
85
|
+
# do nothing
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
66
89
|
end
|
67
90
|
end
|
data/test/misc/config.rb
CHANGED
data/test/test_epubforge.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'helper'
|
2
|
-
require 'thor'
|
3
2
|
|
4
3
|
class TestEpubforge < EpubForge::TestCase #
|
5
4
|
context "Testing a few basic commands" do
|
@@ -15,7 +14,7 @@ class TestEpubforge < EpubForge::TestCase #
|
|
15
14
|
|
16
15
|
should "initialize a new project" do
|
17
16
|
create_project do
|
18
|
-
|
17
|
+
assert_file @project_dir.join( EpubForge::Project::SETTINGS_FOLDER, EpubForge::Project::CONFIG_FILE_NAME )
|
19
18
|
assert @project_dir.join( "settings", "actions" ).directory?
|
20
19
|
assert @project_dir.join( "notes" ).directory?
|
21
20
|
assert @project_dir.join( "book", "title_page.markdown" ).file?
|
@@ -30,8 +29,8 @@ class TestEpubforge < EpubForge::TestCase #
|
|
30
29
|
EpubForge.collect_stdout do
|
31
30
|
report = EpubForge::Action::Runner.new.exec( "wc", @project_dir ).execution_returned
|
32
31
|
assert_kind_of Hash, report
|
33
|
-
assert_equal
|
34
|
-
assert_equal
|
32
|
+
assert_equal 122, report["Book"]
|
33
|
+
assert_equal 157, report["Today"]
|
35
34
|
assert @project_dir.join( EpubForge::Project::SETTINGS_FOLDER, EpubForge::Action::WordCount::WORD_COUNT_FILE ).exist?
|
36
35
|
end
|
37
36
|
end
|
@@ -46,18 +45,23 @@ class TestEpubforge < EpubForge::TestCase #
|
|
46
45
|
end
|
47
46
|
|
48
47
|
assert_match /Error\(s\) trying to complete the requested action/, printout
|
49
|
-
|
48
|
+
puts printout.paint(:red, :invert, :white)
|
49
|
+
assert_match /Could not find a project directory/, printout
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
53
|
should "create an .epub file" do
|
54
54
|
create_project do
|
55
|
-
printout = EpubForge.collect_stdout() do # .collect_stdout(STDOUT) to see what's going on
|
56
|
-
|
57
|
-
end
|
55
|
+
# printout = EpubForge.collect_stdout() do # .collect_stdout(STDOUT) to see what's going on
|
56
|
+
# EpubForge::Action::Runner.new.exec( "forge", @project_dir )
|
57
|
+
# end
|
58
|
+
@runner_exec_errors_action = :raise
|
59
|
+
|
60
|
+
runner_exec( "epub", @project_dir )
|
61
|
+
raise @run_description.errors.first if @run_description.errors? # , "running forge caused errors (#{run_desc.errors.length})"
|
58
62
|
|
59
|
-
|
60
|
-
assert_match /Done building epub/,
|
63
|
+
assert_file @ebook_file, "Ebook was not created"
|
64
|
+
assert_match /Done building epub/, @runner_exec_printout if @runner_exec_printout
|
61
65
|
|
62
66
|
Dir.mktmpdir do |unzip_dir|
|
63
67
|
unzip_dir = unzip_dir.fwf_filepath
|
@@ -100,9 +104,9 @@ class TestEpubforge < EpubForge::TestCase #
|
|
100
104
|
assert_equal 1, toc.grep( /DOCTYPE/ ).length
|
101
105
|
assert_equal 4, toc.grep( /meta name=/ ).length
|
102
106
|
|
103
|
-
section_count = EpubForge.root( "templates", "
|
107
|
+
section_count = EpubForge.root( "templates", "project", "book" ).glob( :ext => ["markdown", "template"] ).length + @chapter_count - 1
|
104
108
|
assert_equal section_count, toc.grep( /xhtml/ ).length
|
105
|
-
assert_equal
|
109
|
+
assert_equal 2, toc.grep( /#{@book_title}/ ).length
|
106
110
|
|
107
111
|
assert_equal section_count, toc.grep( /<content src=/ ).length
|
108
112
|
end
|
@@ -110,10 +114,11 @@ class TestEpubforge < EpubForge::TestCase #
|
|
110
114
|
end
|
111
115
|
end
|
112
116
|
end
|
117
|
+
|
113
118
|
|
114
119
|
should "create an .epub of the notes directory" do
|
115
120
|
create_project do
|
116
|
-
EpubForge::Action::Runner.new.exec( "
|
121
|
+
EpubForge::Action::Runner.new.exec( "epub:notes", @project_dir )
|
117
122
|
assert @notes_file.file?
|
118
123
|
assert ! @notes_file.empty?
|
119
124
|
end
|
@@ -122,7 +127,6 @@ class TestEpubforge < EpubForge::TestCase #
|
|
122
127
|
should "print friggin' something when no args" do
|
123
128
|
EpubForge::Action::Runner.new.exec()
|
124
129
|
end
|
125
|
-
|
126
130
|
end
|
127
131
|
end
|
128
132
|
end
|
@@ -1,24 +1,20 @@
|
|
1
1
|
require 'helper'
|
2
|
-
Htmlizer = EpubForge::Utils::Htmlizer
|
3
2
|
|
4
|
-
class
|
3
|
+
class TestHtmlTranslators < EpubForge::TestCase
|
5
4
|
context "testing htmlizers" do
|
6
5
|
setup do
|
6
|
+
@translator_class = EpubForge::Utils::HtmlTranslator
|
7
7
|
@samples = EpubForge.root("test", "sample_text")
|
8
8
|
end
|
9
9
|
|
10
10
|
should "test markdown" do
|
11
|
-
result =
|
11
|
+
result = @translator_class.translate( @samples.join("sample.markdown") )
|
12
12
|
assert_match /<h1.*This is a header</, result
|
13
13
|
end
|
14
14
|
|
15
15
|
should "test textile" do
|
16
|
-
result =
|
16
|
+
result = @translator_class.translate( @samples.join("sample.textile") )
|
17
17
|
assert_match /<h1.*This is a header</, result
|
18
18
|
end
|
19
|
-
|
20
|
-
should "test everything else" do
|
21
|
-
skip "not written"
|
22
|
-
end
|
23
19
|
end
|
24
20
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestBookTemplates < EpubForge::TestCase
|
4
|
+
context "testing default templates" do
|
5
|
+
setup do
|
6
|
+
@template_dir = EpubForge.root( "templates", "project" )
|
7
|
+
end
|
8
|
+
|
9
|
+
should "properly create files from default templates" do
|
10
|
+
tempdir do
|
11
|
+
assert @template_dir.directory?
|
12
|
+
assert @tmpdir.directory?
|
13
|
+
|
14
|
+
src = @template_dir.join( "book", "afterword.markdown" )
|
15
|
+
dest = @tmpdir.join( "afterword.markdown" )
|
16
|
+
FunWith::Templates::TemplateEvaluator.write( src, dest )
|
17
|
+
|
18
|
+
assert_file_has_content dest
|
19
|
+
assert_file_contents dest, /all the way/
|
20
|
+
assert_file_contents dest, /go find something else to do/
|
21
|
+
|
22
|
+
src = @template_dir.join( "book", "cover.xhtml.template" )
|
23
|
+
dest = @tmpdir.join( "cover.xhtml" )
|
24
|
+
FunWith::Templates::TemplateEvaluator.write( src, dest, fill_in_project_options[:answers] )
|
25
|
+
|
26
|
+
assert dest.file?
|
27
|
+
src = @template_dir.join( "notes", "character.%character.name_for_file%.markdown.template" )
|
28
|
+
|
29
|
+
# specifying only the directory to write the file into should nonetheless yield the proper behavior
|
30
|
+
dest = @tmpdir
|
31
|
+
vars = { :character => {:name => "Wilber Pontiff", :name_for_file => "wilber_pontiff"}}
|
32
|
+
|
33
|
+
FunWith::Templates::TemplateEvaluator.write( src, @tmpdir, vars )
|
34
|
+
|
35
|
+
dest = dest.join("character.wilber_pontiff.markdown")
|
36
|
+
assert_file_has_content dest
|
37
|
+
assert_file_contents( dest, /Wilber Pontiff/ )
|
38
|
+
assert_file_contents( dest, /^==============$/ )
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/test/test_utils.rb
CHANGED
@@ -25,15 +25,4 @@ class TestUtils < EpubForge::TestCase
|
|
25
25
|
assert_equal files_in_expected_order, reordered_files
|
26
26
|
end
|
27
27
|
end
|
28
|
-
|
29
|
-
context "testing template_handler" do
|
30
|
-
should "evaluate erb in a string" do
|
31
|
-
sample = "(<%= Time.now %>): <%= @var_is_set %>"
|
32
|
-
result = TemplateEvaluator.new( sample, var_is_set: "true" ).result
|
33
|
-
|
34
|
-
assert_match /true/, result
|
35
|
-
time_string = /\((.*)\)/.match(result)[1]
|
36
|
-
assert_kind_of Time, Time.parse( time_string )
|
37
|
-
end
|
38
|
-
end
|
39
28
|
end
|
metadata
CHANGED
@@ -1,210 +1,192 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epubforge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.11
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Bryce Anderson
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-05-31 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: xdg
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
19
|
+
version: '2'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
26
|
+
version: '2'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: builder
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: '
|
33
|
+
version: '3'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - "~>"
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: '
|
40
|
+
version: '3'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: nokogiri
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- - ~>
|
45
|
+
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '1.5'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- - ~>
|
52
|
+
- - "~>"
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '1.5'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: thor
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - "~>"
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - "~>"
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
70
|
+
name: kramdown
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
|
-
version: '
|
75
|
+
version: '1.3'
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
|
-
version: '
|
82
|
+
version: '1.3'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
84
|
+
name: fun_with_gems
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - "~>"
|
100
88
|
- !ruby/object:Gem::Version
|
101
|
-
version: '0'
|
89
|
+
version: '0.0'
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - "~>"
|
108
95
|
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
96
|
+
version: '0.0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
98
|
+
name: fun_with_configurations
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- - ~>
|
101
|
+
- - "~>"
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
118
|
-
type: :
|
103
|
+
version: '0.0'
|
104
|
+
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- - ~>
|
108
|
+
- - "~>"
|
124
109
|
- !ruby/object:Gem::Version
|
125
|
-
version: '
|
110
|
+
version: '0.0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
112
|
+
name: fun_with_templates
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- - ~>
|
115
|
+
- - "~>"
|
132
116
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
134
|
-
type: :
|
117
|
+
version: '0.0'
|
118
|
+
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- - ~>
|
122
|
+
- - "~>"
|
140
123
|
- !ruby/object:Gem::Version
|
141
|
-
version:
|
124
|
+
version: '0.0'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
126
|
+
name: fun_with_string_colors
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
|
-
- - ~>
|
129
|
+
- - "~>"
|
148
130
|
- !ruby/object:Gem::Version
|
149
|
-
version:
|
150
|
-
type: :
|
131
|
+
version: '0.0'
|
132
|
+
type: :runtime
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
|
-
- - ~>
|
136
|
+
- - "~>"
|
156
137
|
- !ruby/object:Gem::Version
|
157
|
-
version:
|
138
|
+
version: '0.0'
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
|
-
name:
|
140
|
+
name: fun_with_patterns
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
|
-
- - ~>
|
143
|
+
- - "~>"
|
164
144
|
- !ruby/object:Gem::Version
|
165
|
-
version: '
|
166
|
-
type: :
|
145
|
+
version: '0.0'
|
146
|
+
type: :runtime
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
|
-
- - ~>
|
150
|
+
- - "~>"
|
172
151
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
152
|
+
version: '0.0'
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
|
-
name:
|
154
|
+
name: fun_with_testing
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
|
-
- -
|
157
|
+
- - ">="
|
180
158
|
- !ruby/object:Gem::Version
|
181
|
-
version:
|
159
|
+
version: 0.0.2
|
160
|
+
- - "~>"
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '0.0'
|
182
163
|
type: :development
|
183
164
|
prerelease: false
|
184
165
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
166
|
requirements:
|
187
|
-
- -
|
167
|
+
- - ">="
|
188
168
|
- !ruby/object:Gem::Version
|
189
|
-
version:
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
169
|
+
version: 0.0.2
|
170
|
+
- - "~>"
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0.0'
|
173
|
+
description: "= epubforge =\n\nWrite your book in markdown, then do all sorts of increasingly
|
174
|
+
nifty things with it using this command-line utility.\n\n== Project description
|
175
|
+
==\n\nepubforge is a command-line utility for creating, tracking and managing longer
|
176
|
+
(novella and book-length) writing projects. Write your text in markdown (http://whatismarkdown.com/),
|
177
|
+
use the built in actions to convert your project to various ebook formats, track
|
178
|
+
wordcount over the life of the project, manage a story bible, and back your project
|
179
|
+
up using git.\n\nOr go further and define your own formatters/converters and actions
|
180
|
+
in Ruby. Have fun!\n\n\n== Contributing to epubforge ==\n \n* Check out the latest
|
181
|
+
master to make sure the feature hasn't been implemented or the bug hasn't been fixed
|
182
|
+
yet.\n* Check out the issue tracker to make sure someone already hasn't requested
|
183
|
+
it and/or contributed it.\n* Fork the project.\n* Start a feature/bugfix branch.\n*
|
184
|
+
Commit and push until you are happy with your contribution.\n* Make sure to add
|
185
|
+
tests for it. This is important so I don't break it in a future version unintentionally.\n*
|
186
|
+
Please try not to mess with the Rakefile, version, or history. If you want to have
|
187
|
+
your own version, or is otherwise necessary, that is fine, but please isolate to
|
188
|
+
its own commit so I can cherry-pick around it.\n\n== Copyright ==\n\nCopyright (c)
|
189
|
+
2013 Bryce Anderson. See LICENSE.txt for\nfurther details.\n\n"
|
208
190
|
email: keeputahweird@gmail.com
|
209
191
|
executables:
|
210
192
|
- epubforge
|
@@ -213,92 +195,111 @@ extra_rdoc_files:
|
|
213
195
|
- LICENSE.txt
|
214
196
|
- README.rdoc
|
215
197
|
files:
|
216
|
-
- ./bin/epubforge
|
217
|
-
- ./config/actions/
|
218
|
-
- ./config/actions/
|
219
|
-
- ./config/actions/
|
220
|
-
- ./config/actions/
|
221
|
-
- ./config/actions/
|
222
|
-
- ./config/actions/
|
223
|
-
- ./config/actions/
|
224
|
-
- ./config/actions/
|
225
|
-
- ./config/
|
226
|
-
- ./config/
|
227
|
-
- ./config/
|
228
|
-
- ./config/
|
229
|
-
- ./config/
|
230
|
-
- ./config/
|
231
|
-
- ./config/
|
232
|
-
- ./config/
|
233
|
-
- ./config/
|
234
|
-
- ./config/
|
235
|
-
- ./
|
236
|
-
- ./
|
237
|
-
- ./
|
238
|
-
- ./
|
239
|
-
- ./
|
240
|
-
- ./
|
241
|
-
- ./
|
242
|
-
- ./
|
243
|
-
- ./
|
244
|
-
- ./
|
245
|
-
- ./
|
246
|
-
- ./
|
247
|
-
- ./
|
248
|
-
- ./
|
249
|
-
- ./lib/
|
250
|
-
- ./lib/
|
251
|
-
- ./lib/
|
252
|
-
- ./lib/
|
253
|
-
- ./lib/
|
254
|
-
- ./lib/
|
255
|
-
- ./lib/
|
256
|
-
- ./lib/
|
257
|
-
- ./lib/
|
258
|
-
- ./lib/
|
259
|
-
- ./lib/
|
260
|
-
- ./lib/epubforge.rb
|
261
|
-
- ./lib/
|
262
|
-
- ./lib/
|
263
|
-
- ./lib/
|
264
|
-
- ./lib/
|
265
|
-
- ./lib/
|
266
|
-
- ./lib/
|
267
|
-
- ./lib/
|
268
|
-
- ./lib/
|
269
|
-
- ./lib/
|
270
|
-
- ./lib/
|
271
|
-
- ./lib/
|
272
|
-
- ./lib/
|
273
|
-
- ./lib/
|
274
|
-
- ./lib/
|
275
|
-
- ./lib/
|
276
|
-
- ./
|
277
|
-
- ./
|
278
|
-
- ./
|
279
|
-
- ./
|
280
|
-
- ./
|
281
|
-
- ./
|
282
|
-
- ./
|
283
|
-
- ./
|
284
|
-
- ./
|
285
|
-
- ./
|
286
|
-
- ./
|
287
|
-
- ./
|
288
|
-
- ./
|
289
|
-
- ./
|
290
|
-
- ./
|
291
|
-
- ./
|
292
|
-
- ./
|
293
|
-
- ./
|
294
|
-
- ./
|
295
|
-
- ./
|
296
|
-
- ./
|
297
|
-
- ./
|
298
|
-
- ./
|
299
|
-
- ./
|
300
|
-
- ./
|
301
|
-
- ./
|
198
|
+
- "./bin/epubforge"
|
199
|
+
- "./config/actions/epub.rb"
|
200
|
+
- "./config/actions/forge.rb"
|
201
|
+
- "./config/actions/git.rb"
|
202
|
+
- "./config/actions/help.rb"
|
203
|
+
- "./config/actions/html.rb"
|
204
|
+
- "./config/actions/mobi.rb"
|
205
|
+
- "./config/actions/new.rb"
|
206
|
+
- "./config/actions/word_count.rb"
|
207
|
+
- "./config/actions_to_ignore/generate.rb"
|
208
|
+
- "./config/actions_to_ignore/generate_chapter.rb"
|
209
|
+
- "./config/actions_to_ignore/git_backup.rb"
|
210
|
+
- "./config/actions_to_ignore/globals.rb"
|
211
|
+
- "./config/actions_to_ignore/kindle.rb"
|
212
|
+
- "./config/actions_to_ignore/local_action.rb"
|
213
|
+
- "./config/actions_to_ignore/mobify.rb"
|
214
|
+
- "./config/actions_to_ignore/notes_to_epub.rb"
|
215
|
+
- "./config/actions_to_ignore/notes_to_kindle.rb"
|
216
|
+
- "./config/actions_to_ignore/spell.rb"
|
217
|
+
- "./config/actions_to_ignore/version.rb"
|
218
|
+
- "./config/actions_to_ignore/wrap_scene_notes_in_hidden_div.rb"
|
219
|
+
- "./config/converters/epub_to_mobi.calibre.rb"
|
220
|
+
- "./config/converters/epub_to_mobi.kindlegen.rb"
|
221
|
+
- "./config/html_translators/default_kramdown.html_translator.rb"
|
222
|
+
- "./config/html_translators/default_markdown.html_translator.rb"
|
223
|
+
- "./config/html_translators/default_markdown_pandoc.html_translator.rb"
|
224
|
+
- "./config/html_translators/default_textile_pandoc.html_translator.rb"
|
225
|
+
- "./config/html_translators/default_xhtml.html_translator.rb"
|
226
|
+
- "./config/html_translators/fallback_html.html_translator.rb"
|
227
|
+
- "./config/html_translators/fallback_markdown.html_translator.rb"
|
228
|
+
- "./config/html_translators/fallback_textile.html_translator.rb"
|
229
|
+
- "./config/html_translators/fallback_txt.html_translator.rb"
|
230
|
+
- "./config/html_translators/fallback_unknown.html_translator.rb"
|
231
|
+
- "./lib/epubforge.rb"
|
232
|
+
- "./lib/epubforge/action/action.rb"
|
233
|
+
- "./lib/epubforge/action/action2.rb"
|
234
|
+
- "./lib/epubforge/action/action_definition.rb"
|
235
|
+
- "./lib/epubforge/action/actions_lookup.rb"
|
236
|
+
- "./lib/epubforge/action/chatterbox.rb"
|
237
|
+
- "./lib/epubforge/action/cli_command.rb"
|
238
|
+
- "./lib/epubforge/action/cli_sequence.rb"
|
239
|
+
- "./lib/epubforge/action/file_transformer.rb"
|
240
|
+
- "./lib/epubforge/action/hooks_interface.rb"
|
241
|
+
- "./lib/epubforge/action/run_description.rb"
|
242
|
+
- "./lib/epubforge/action/runner.rb"
|
243
|
+
- "./lib/epubforge/builder/assets/asset.rb"
|
244
|
+
- "./lib/epubforge/builder/assets/font.rb"
|
245
|
+
- "./lib/epubforge/builder/assets/html.rb"
|
246
|
+
- "./lib/epubforge/builder/assets/image.rb"
|
247
|
+
- "./lib/epubforge/builder/assets/markdown.rb"
|
248
|
+
- "./lib/epubforge/builder/assets/page.rb"
|
249
|
+
- "./lib/epubforge/builder/assets/stylesheet.rb"
|
250
|
+
- "./lib/epubforge/builder/assets/textile.rb"
|
251
|
+
- "./lib/epubforge/builder/assets/xhtml.rb"
|
252
|
+
- "./lib/epubforge/builder/builder.rb"
|
253
|
+
- "./lib/epubforge/builder/epub.rb"
|
254
|
+
- "./lib/epubforge/builder/html.rb"
|
255
|
+
- "./lib/epubforge/builder/packager.rb"
|
256
|
+
- "./lib/epubforge/core_extensions/array.rb"
|
257
|
+
- "./lib/epubforge/core_extensions/kernel.rb"
|
258
|
+
- "./lib/epubforge/core_extensions/nil_class.rb"
|
259
|
+
- "./lib/epubforge/core_extensions/object.rb"
|
260
|
+
- "./lib/epubforge/core_extensions/string.rb"
|
261
|
+
- "./lib/epubforge/custom_helpers.rb"
|
262
|
+
- "./lib/epubforge/exceptions/errors.rb"
|
263
|
+
- "./lib/epubforge/project/project.rb"
|
264
|
+
- "./lib/epubforge/utils/action_loader.rb"
|
265
|
+
- "./lib/epubforge/utils/class_loader.rb"
|
266
|
+
- "./lib/epubforge/utils/converter.rb"
|
267
|
+
- "./lib/epubforge/utils/downloader.rb"
|
268
|
+
- "./lib/epubforge/utils/file_orderer.rb"
|
269
|
+
- "./lib/epubforge/utils/file_path.rb"
|
270
|
+
- "./lib/epubforge/utils/html_translator.rb"
|
271
|
+
- "./lib/epubforge/utils/html_translator_queue.rb"
|
272
|
+
- "./lib/epubforge/utils/htmlizer.rb"
|
273
|
+
- "./lib/epubforge/utils/misc.rb"
|
274
|
+
- "./lib/epubforge/utils/root_path.rb"
|
275
|
+
- "./lib/epubforge/utils/settings.rb"
|
276
|
+
- "./lib/epubforge/utils/template_evaluator.rb"
|
277
|
+
- "./templates/project/book/afterword.markdown"
|
278
|
+
- "./templates/project/book/chapter-%0000chapter%.markdown.template"
|
279
|
+
- "./templates/project/book/cover.xhtml.template"
|
280
|
+
- "./templates/project/book/foreword.markdown"
|
281
|
+
- "./templates/project/book/images/cover.png"
|
282
|
+
- "./templates/project/book/stylesheets/stylesheet.css"
|
283
|
+
- "./templates/project/book/title_page.markdown.template"
|
284
|
+
- "./templates/project/notes/character.%character.name_for_file%.markdown.template"
|
285
|
+
- "./templates/project/notes/images/cover.png"
|
286
|
+
- "./templates/project/notes/stylesheets/stylesheet.css"
|
287
|
+
- "./templates/project/settings/actions/local_action.rb.example"
|
288
|
+
- "./templates/project/settings/config.rb.template"
|
289
|
+
- "./templates/project/settings/html_translators/example_translator.rb"
|
290
|
+
- "./templates/project/settings/wordcount.template"
|
291
|
+
- "./test/answers01.yml"
|
292
|
+
- "./test/helper.rb"
|
293
|
+
- "./test/misc/config.rb"
|
294
|
+
- "./test/sample_text/sample.markdown"
|
295
|
+
- "./test/sample_text/sample.textile"
|
296
|
+
- "./test/test_custom_helpers.rb"
|
297
|
+
- "./test/test_epf_root.rb"
|
298
|
+
- "./test/test_epubforge.rb"
|
299
|
+
- "./test/test_html_translators.rb"
|
300
|
+
- "./test/test_runner.rb"
|
301
|
+
- "./test/test_template_evaluator.rb"
|
302
|
+
- "./test/test_utils.rb"
|
302
303
|
- Gemfile
|
303
304
|
- LICENSE.txt
|
304
305
|
- README.rdoc
|
@@ -308,30 +309,26 @@ files:
|
|
308
309
|
homepage: http://github.com/darth_schmoo/epubforge
|
309
310
|
licenses:
|
310
311
|
- MIT
|
312
|
+
metadata: {}
|
311
313
|
post_install_message:
|
312
314
|
rdoc_options: []
|
313
315
|
require_paths:
|
314
316
|
- lib
|
315
317
|
required_ruby_version: !ruby/object:Gem::Requirement
|
316
|
-
none: false
|
317
318
|
requirements:
|
318
|
-
- -
|
319
|
+
- - ">="
|
319
320
|
- !ruby/object:Gem::Version
|
320
321
|
version: '0'
|
321
|
-
segments:
|
322
|
-
- 0
|
323
|
-
hash: -427571737354431550
|
324
322
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
325
|
-
none: false
|
326
323
|
requirements:
|
327
|
-
- -
|
324
|
+
- - ">="
|
328
325
|
- !ruby/object:Gem::Version
|
329
326
|
version: '0'
|
330
327
|
requirements: []
|
331
328
|
rubyforge_project:
|
332
|
-
rubygems_version:
|
329
|
+
rubygems_version: 2.2.2
|
333
330
|
signing_key:
|
334
|
-
specification_version:
|
331
|
+
specification_version: 4
|
335
332
|
summary: Write your book in markdown, then do all sorts of increasingly nifty things
|
336
333
|
with it.
|
337
334
|
test_files: []
|