nanoc 3.7.4 → 3.7.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +19 -18
- data/LICENSE +1 -1
- data/NEWS.md +14 -0
- data/Rakefile +1 -1
- data/doc/yardoc_handlers/identifier.rb +1 -5
- data/lib/nanoc.rb +1 -3
- data/lib/nanoc/base.rb +1 -4
- data/lib/nanoc/base/checksummer.rb +10 -12
- data/lib/nanoc/base/compilation/checksum_store.rb +0 -4
- data/lib/nanoc/base/compilation/compiled_content_cache.rb +0 -4
- data/lib/nanoc/base/compilation/compiler.rb +27 -31
- data/lib/nanoc/base/compilation/compiler_dsl.rb +3 -7
- data/lib/nanoc/base/compilation/dependency_tracker.rb +2 -6
- data/lib/nanoc/base/compilation/filter.rb +1 -7
- data/lib/nanoc/base/compilation/item_rep_proxy.rb +0 -4
- data/lib/nanoc/base/compilation/item_rep_recorder_proxy.rb +0 -4
- data/lib/nanoc/base/compilation/outdatedness_checker.rb +0 -4
- data/lib/nanoc/base/compilation/outdatedness_reasons.rb +0 -6
- data/lib/nanoc/base/compilation/rule.rb +1 -5
- data/lib/nanoc/base/compilation/rule_context.rb +7 -11
- data/lib/nanoc/base/compilation/rule_memory_calculator.rb +0 -4
- data/lib/nanoc/base/compilation/rule_memory_store.rb +0 -4
- data/lib/nanoc/base/compilation/rules_collection.rb +5 -9
- data/lib/nanoc/base/context.rb +0 -3
- data/lib/nanoc/base/core_ext.rb +0 -1
- data/lib/nanoc/base/core_ext/array.rb +0 -2
- data/lib/nanoc/base/core_ext/hash.rb +0 -2
- data/lib/nanoc/base/core_ext/pathname.rb +0 -2
- data/lib/nanoc/base/core_ext/string.rb +0 -2
- data/lib/nanoc/base/directed_graph.rb +0 -4
- data/lib/nanoc/base/errors.rb +1 -39
- data/lib/nanoc/base/memoization.rb +0 -4
- data/lib/nanoc/base/notification_center.rb +1 -7
- data/lib/nanoc/base/plugin_registry.rb +4 -10
- data/lib/nanoc/base/result_data/item_rep.rb +8 -16
- data/lib/nanoc/base/source_data/code_snippet.rb +1 -5
- data/lib/nanoc/base/source_data/configuration.rb +0 -4
- data/lib/nanoc/base/source_data/data_source.rb +2 -5
- data/lib/nanoc/base/source_data/item.rb +3 -7
- data/lib/nanoc/base/source_data/item_array.rb +1 -5
- data/lib/nanoc/base/source_data/layout.rb +2 -6
- data/lib/nanoc/base/source_data/site.rb +20 -23
- data/lib/nanoc/base/store.rb +1 -5
- data/lib/nanoc/base/temp_filename_factory.rb +0 -4
- data/lib/nanoc/cli.rb +3 -5
- data/lib/nanoc/cli/ansi_string_colorizer.rb +6 -10
- data/lib/nanoc/cli/cleaning_stream.rb +2 -6
- data/lib/nanoc/cli/command_runner.rb +1 -5
- data/lib/nanoc/cli/commands/autocompile.rb +2 -6
- data/lib/nanoc/cli/commands/check.rb +0 -4
- data/lib/nanoc/cli/commands/compile.rb +12 -27
- data/lib/nanoc/cli/commands/create-item.rb +1 -5
- data/lib/nanoc/cli/commands/create-layout.rb +0 -4
- data/lib/nanoc/cli/commands/create-site.rb +2 -8
- data/lib/nanoc/cli/commands/deploy.rb +3 -7
- data/lib/nanoc/cli/commands/prune.rb +2 -6
- data/lib/nanoc/cli/commands/shell.rb +4 -8
- data/lib/nanoc/cli/commands/show-data.rb +3 -7
- data/lib/nanoc/cli/commands/show-plugins.rb +3 -7
- data/lib/nanoc/cli/commands/show-rules.rb +11 -15
- data/lib/nanoc/cli/commands/sync.rb +0 -4
- data/lib/nanoc/cli/commands/update.rb +1 -7
- data/lib/nanoc/cli/commands/validate-css.rb +0 -4
- data/lib/nanoc/cli/commands/validate-html.rb +0 -4
- data/lib/nanoc/cli/commands/validate-links.rb +0 -4
- data/lib/nanoc/cli/commands/view.rb +3 -7
- data/lib/nanoc/cli/commands/watch.rb +4 -10
- data/lib/nanoc/cli/error_handler.rb +9 -13
- data/lib/nanoc/cli/logger.rb +8 -12
- data/lib/nanoc/cli/stream_cleaners.rb +0 -4
- data/lib/nanoc/cli/stream_cleaners/abstract.rb +1 -5
- data/lib/nanoc/cli/stream_cleaners/ansi_colors.rb +0 -4
- data/lib/nanoc/cli/stream_cleaners/utf8.rb +1 -5
- data/lib/nanoc/data_sources.rb +2 -4
- data/lib/nanoc/data_sources/deprecated/delicious.rb +6 -10
- data/lib/nanoc/data_sources/deprecated/last_fm.rb +7 -11
- data/lib/nanoc/data_sources/deprecated/twitter.rb +2 -6
- data/lib/nanoc/data_sources/filesystem.rb +10 -13
- data/lib/nanoc/data_sources/filesystem_unified.rb +0 -4
- data/lib/nanoc/data_sources/filesystem_verbose.rb +0 -4
- data/lib/nanoc/data_sources/static.rb +4 -8
- data/lib/nanoc/extra.rb +2 -4
- data/lib/nanoc/extra/auto_compiler.rb +2 -6
- data/lib/nanoc/extra/checking.rb +0 -4
- data/lib/nanoc/extra/checking/check.rb +0 -4
- data/lib/nanoc/extra/checking/checks.rb +0 -2
- data/lib/nanoc/extra/checking/checks/css.rb +6 -6
- data/lib/nanoc/extra/checking/checks/external_links.rb +3 -11
- data/lib/nanoc/extra/checking/checks/html.rb +6 -6
- data/lib/nanoc/extra/checking/checks/internal_links.rb +3 -7
- data/lib/nanoc/extra/checking/checks/stale.rb +3 -7
- data/lib/nanoc/extra/checking/dsl.rb +0 -4
- data/lib/nanoc/extra/checking/issue.rb +0 -4
- data/lib/nanoc/extra/checking/runner.rb +4 -7
- data/lib/nanoc/extra/chick.rb +7 -17
- data/lib/nanoc/extra/core_ext.rb +0 -1
- data/lib/nanoc/extra/core_ext/pathname.rb +0 -4
- data/lib/nanoc/extra/core_ext/time.rb +0 -2
- data/lib/nanoc/extra/deployer.rb +0 -4
- data/lib/nanoc/extra/deployers.rb +0 -4
- data/lib/nanoc/extra/deployers/fog.rb +7 -11
- data/lib/nanoc/extra/deployers/rsync.rb +1 -5
- data/lib/nanoc/extra/file_proxy.rb +1 -5
- data/lib/nanoc/extra/filesystem_tools.rb +37 -12
- data/lib/nanoc/extra/jruby_nokogiri_warner.rb +0 -4
- data/lib/nanoc/extra/link_collector.rb +3 -7
- data/lib/nanoc/extra/piper.rb +0 -6
- data/lib/nanoc/extra/pruner.rb +1 -7
- data/lib/nanoc/extra/validators.rb +0 -4
- data/lib/nanoc/extra/validators/links.rb +0 -4
- data/lib/nanoc/extra/validators/w3c.rb +0 -4
- data/lib/nanoc/extra/vcs.rb +3 -7
- data/lib/nanoc/extra/vcses.rb +0 -2
- data/lib/nanoc/extra/vcses/bazaar.rb +0 -4
- data/lib/nanoc/extra/vcses/dummy.rb +0 -4
- data/lib/nanoc/extra/vcses/git.rb +0 -4
- data/lib/nanoc/extra/vcses/mercurial.rb +0 -4
- data/lib/nanoc/extra/vcses/subversion.rb +0 -4
- data/lib/nanoc/filters.rb +0 -2
- data/lib/nanoc/filters/asciidoc.rb +1 -5
- data/lib/nanoc/filters/bluecloth.rb +0 -2
- data/lib/nanoc/filters/coderay.rb +0 -2
- data/lib/nanoc/filters/coffeescript.rb +0 -4
- data/lib/nanoc/filters/colorize_syntax.rb +17 -15
- data/lib/nanoc/filters/erb.rb +1 -3
- data/lib/nanoc/filters/erubis.rb +2 -4
- data/lib/nanoc/filters/haml.rb +2 -4
- data/lib/nanoc/filters/handlebars.rb +0 -4
- data/lib/nanoc/filters/kramdown.rb +7 -4
- data/lib/nanoc/filters/less.rb +1 -3
- data/lib/nanoc/filters/markaby.rb +0 -2
- data/lib/nanoc/filters/maruku.rb +0 -2
- data/lib/nanoc/filters/mustache.rb +1 -5
- data/lib/nanoc/filters/pandoc.rb +0 -2
- data/lib/nanoc/filters/rainpress.rb +0 -2
- data/lib/nanoc/filters/rdiscount.rb +0 -2
- data/lib/nanoc/filters/rdoc.rb +0 -2
- data/lib/nanoc/filters/redcarpet.rb +0 -4
- data/lib/nanoc/filters/redcloth.rb +0 -2
- data/lib/nanoc/filters/relativize_paths.rb +2 -4
- data/lib/nanoc/filters/rubypants.rb +0 -2
- data/lib/nanoc/filters/sass.rb +2 -4
- data/lib/nanoc/filters/sass/sass_filesystem_importer.rb +0 -2
- data/lib/nanoc/filters/slim.rb +2 -6
- data/lib/nanoc/filters/typogruby.rb +0 -4
- data/lib/nanoc/filters/uglify_js.rb +0 -2
- data/lib/nanoc/filters/xsl.rb +1 -5
- data/lib/nanoc/filters/yui_compressor.rb +0 -4
- data/lib/nanoc/helpers.rb +0 -2
- data/lib/nanoc/helpers/blogging.rb +12 -20
- data/lib/nanoc/helpers/breadcrumbs.rb +0 -4
- data/lib/nanoc/helpers/capturing.rb +2 -10
- data/lib/nanoc/helpers/filtering.rb +0 -4
- data/lib/nanoc/helpers/html_escape.rb +3 -7
- data/lib/nanoc/helpers/link_to.rb +0 -4
- data/lib/nanoc/helpers/rendering.rb +8 -12
- data/lib/nanoc/helpers/tagging.rb +0 -4
- data/lib/nanoc/helpers/text.rb +1 -5
- data/lib/nanoc/helpers/xml_sitemap.rb +3 -7
- data/lib/nanoc/tasks/clean.rb +1 -7
- data/lib/nanoc/tasks/deploy/rsync.rake +0 -2
- data/lib/nanoc/tasks/validate.rake +0 -4
- data/lib/nanoc/version.rb +1 -3
- data/nanoc.gemspec +12 -9
- data/tasks/rubocop.rake +1 -1
- data/tasks/test.rake +6 -7
- data/test/base/checksummer_spec.rb +28 -44
- data/test/base/core_ext/array_spec.rb +1 -9
- data/test/base/core_ext/hash_spec.rb +7 -19
- data/test/base/core_ext/pathname_spec.rb +2 -4
- data/test/base/core_ext/string_spec.rb +0 -4
- data/test/base/temp_filename_factory_spec.rb +0 -8
- data/test/base/test_checksum_store.rb +0 -2
- data/test/base/test_code_snippet.rb +0 -2
- data/test/base/test_compiler.rb +15 -17
- data/test/base/test_compiler_dsl.rb +7 -9
- data/test/base/test_context.rb +2 -4
- data/test/base/test_data_source.rb +0 -2
- data/test/base/test_dependency_tracker.rb +0 -2
- data/test/base/test_directed_graph.rb +2 -4
- data/test/base/test_filter.rb +5 -7
- data/test/base/test_item.rb +17 -13
- data/test/base/test_item_array.rb +2 -4
- data/test/base/test_item_rep.rb +79 -73
- data/test/base/test_layout.rb +3 -5
- data/test/base/test_memoization.rb +13 -21
- data/test/base/test_notification_center.rb +0 -2
- data/test/base/test_outdatedness_checker.rb +34 -36
- data/test/base/test_plugin.rb +0 -2
- data/test/base/test_rule.rb +3 -5
- data/test/base/test_rule_context.rb +4 -6
- data/test/base/test_site.rb +9 -17
- data/test/base/test_store.rb +2 -6
- data/test/cli/commands/test_check.rb +1 -3
- data/test/cli/commands/test_compile.rb +24 -15
- data/test/cli/commands/test_create_item.rb +1 -3
- data/test/cli/commands/test_create_layout.rb +0 -2
- data/test/cli/commands/test_create_site.rb +0 -3
- data/test/cli/commands/test_deploy.rb +9 -11
- data/test/cli/commands/test_help.rb +0 -2
- data/test/cli/commands/test_info.rb +0 -2
- data/test/cli/commands/test_prune.rb +6 -8
- data/test/cli/commands/test_sync.rb +0 -2
- data/test/cli/commands/test_update.rb +0 -2
- data/test/cli/commands/test_watch.rb +4 -6
- data/test/cli/test_cleaning_stream.rb +4 -6
- data/test/cli/test_cli.rb +9 -5
- data/test/cli/test_error_handler.rb +9 -7
- data/test/cli/test_logger.rb +0 -2
- data/test/data_sources/test_filesystem.rb +8 -10
- data/test/data_sources/test_filesystem_unified.rb +35 -34
- data/test/data_sources/test_filesystem_verbose.rb +31 -33
- data/test/data_sources/test_static.rb +20 -21
- data/test/extra/checking/checks/test_css.rb +23 -2
- data/test/extra/checking/checks/test_external_links.rb +2 -4
- data/test/extra/checking/checks/test_html.rb +4 -3
- data/test/extra/checking/checks/test_internal_links.rb +1 -3
- data/test/extra/checking/checks/test_stale.rb +4 -6
- data/test/extra/checking/test_check.rb +0 -2
- data/test/extra/checking/test_dsl.rb +1 -3
- data/test/extra/checking/test_runner.rb +0 -2
- data/test/extra/core_ext/test_pathname.rb +0 -3
- data/test/extra/core_ext/test_time.rb +0 -2
- data/test/extra/deployers/test_fog.rb +13 -15
- data/test/extra/deployers/test_rsync.rb +4 -6
- data/test/extra/test_auto_compiler.rb +47 -25
- data/test/extra/test_file_proxy.rb +1 -3
- data/test/extra/test_filesystem_tools.rb +47 -7
- data/test/extra/test_link_collector.rb +0 -2
- data/test/extra/test_piper.rb +3 -5
- data/test/extra/test_vcs.rb +0 -2
- data/test/extra/validators/test_links.rb +0 -1
- data/test/extra/validators/test_w3c.rb +2 -4
- data/test/filters/test_asciidoc.rb +0 -2
- data/test/filters/test_bluecloth.rb +0 -2
- data/test/filters/test_coderay.rb +2 -4
- data/test/filters/test_coffeescript.rb +0 -2
- data/test/filters/test_colorize_syntax.rb +16 -18
- data/test/filters/test_erb.rb +12 -14
- data/test/filters/test_erubis.rb +4 -6
- data/test/filters/test_haml.rb +7 -9
- data/test/filters/test_handlebars.rb +10 -12
- data/test/filters/test_kramdown.rb +13 -1
- data/test/filters/test_less.rb +9 -11
- data/test/filters/test_markaby.rb +0 -2
- data/test/filters/test_maruku.rb +0 -2
- data/test/filters/test_mustache.rb +4 -6
- data/test/filters/test_pandoc.rb +1 -3
- data/test/filters/test_rainpress.rb +1 -3
- data/test/filters/test_rdiscount.rb +1 -3
- data/test/filters/test_rdoc.rb +0 -2
- data/test/filters/test_redcarpet.rb +6 -8
- data/test/filters/test_redcloth.rb +1 -3
- data/test/filters/test_relativize_paths.rb +29 -34
- data/test/filters/test_rubypants.rb +0 -2
- data/test/filters/test_sass.rb +8 -10
- data/test/filters/test_slim.rb +2 -4
- data/test/filters/test_typogruby.rb +0 -3
- data/test/filters/test_uglify_js.rb +2 -4
- data/test/filters/test_xsl.rb +16 -18
- data/test/filters/test_yui_compressor.rb +3 -5
- data/test/fixtures/vcr_cassettes/css_run_parse_error.yml +65 -0
- data/test/gem_loader.rb +1 -1
- data/test/helper.rb +11 -15
- data/test/helpers/test_blogging.rb +61 -63
- data/test/helpers/test_breadcrumbs.rb +0 -2
- data/test/helpers/test_capturing.rb +4 -6
- data/test/helpers/test_filtering.rb +2 -4
- data/test/helpers/test_html_escape.rb +0 -2
- data/test/helpers/test_link_to.rb +5 -6
- data/test/helpers/test_rendering.rb +2 -4
- data/test/helpers/test_tagging.rb +9 -11
- data/test/helpers/test_text.rb +6 -8
- data/test/helpers/test_xml_sitemap.rb +11 -13
- data/test/tasks/test_clean.rb +0 -2
- data/test/test_gem.rb +1 -3
- metadata +15 -14
- data/Gemfile.lock +0 -252
- data/lib/nanoc/base/core_ext/date.rb +0 -29
- data/lib/nanoc/base/ordered_hash.rb +0 -228
- data/lib/nanoc/extra/core_ext/enumerable.rb +0 -33
- data/test/base/core_ext/date_spec.rb +0 -15
- data/test/extra/core_ext/test_enumerable.rb +0 -28
@@ -9,9 +9,7 @@ current site, along with dependency information.
|
|
9
9
|
EOS
|
10
10
|
|
11
11
|
module Nanoc::CLI::Commands
|
12
|
-
|
13
12
|
class ShowData < ::Nanoc::CLI::CommandRunner
|
14
|
-
|
15
13
|
def run
|
16
14
|
load_site
|
17
15
|
|
@@ -35,7 +33,7 @@ module Nanoc::CLI::Commands
|
|
35
33
|
|
36
34
|
def sorted_with_prev(objects)
|
37
35
|
prev = nil
|
38
|
-
objects.sort_by
|
36
|
+
objects.sort_by(&:identifier).each do |object|
|
39
37
|
yield(object, prev)
|
40
38
|
prev = object
|
41
39
|
end
|
@@ -43,7 +41,7 @@ module Nanoc::CLI::Commands
|
|
43
41
|
|
44
42
|
def sorted_reps_with_prev(items)
|
45
43
|
prev = nil
|
46
|
-
items.sort_by
|
44
|
+
items.sort_by(&:identifier).each do |item|
|
47
45
|
item.reps.sort_by { |r| r.name.to_s }.each do |rep|
|
48
46
|
yield(rep, prev)
|
49
47
|
prev = rep
|
@@ -89,7 +87,7 @@ module Nanoc::CLI::Commands
|
|
89
87
|
end
|
90
88
|
length = rep.raw_paths.keys.map { |s| s.to_s.length }.max
|
91
89
|
rep.raw_paths.each do |snapshot_name, raw_path|
|
92
|
-
puts " [ %-#{length}s ] %s"
|
90
|
+
puts format(" [ %-#{length}s ] %s", snapshot_name, raw_path)
|
93
91
|
end
|
94
92
|
end
|
95
93
|
end
|
@@ -124,9 +122,7 @@ module Nanoc::CLI::Commands
|
|
124
122
|
puts
|
125
123
|
end
|
126
124
|
end
|
127
|
-
|
128
125
|
end
|
129
|
-
|
130
126
|
end
|
131
127
|
|
132
128
|
runner Nanoc::CLI::Commands::ShowData
|
@@ -9,9 +9,7 @@ If the current directory contains a nanoc web site, the plugins defined in this
|
|
9
9
|
EOS
|
10
10
|
|
11
11
|
module Nanoc::CLI::Commands
|
12
|
-
|
13
12
|
class ShowPlugins < ::Nanoc::CLI::CommandRunner
|
14
|
-
|
15
13
|
def run
|
16
14
|
# Check arguments
|
17
15
|
if arguments.size != 0
|
@@ -35,8 +33,8 @@ module Nanoc::CLI::Commands
|
|
35
33
|
|
36
34
|
PLUGIN_CLASS_ORDER.each do |superclass|
|
37
35
|
plugins_with_this_superclass = {
|
38
|
-
:
|
39
|
-
:
|
36
|
+
builtin: plugins_builtin.select { |p| p[:superclass] == superclass },
|
37
|
+
custom: plugins_custom.select { |p| p[:superclass] == superclass }
|
40
38
|
}
|
41
39
|
|
42
40
|
# Print kind
|
@@ -59,7 +57,7 @@ module Nanoc::CLI::Commands
|
|
59
57
|
# Print plugins
|
60
58
|
relevant_plugins.sort_by { |k| k[:identifiers].join(', ') }.each do |plugin|
|
61
59
|
# Display
|
62
|
-
puts
|
60
|
+
puts format(
|
63
61
|
" %-#{max_identifiers_length}s (%s)",
|
64
62
|
plugin[:identifiers].join(', '),
|
65
63
|
plugin[:class].to_s.sub(/^::/, '')
|
@@ -90,9 +88,7 @@ module Nanoc::CLI::Commands
|
|
90
88
|
def name_for_plugin_class(klass)
|
91
89
|
PLUGIN_CLASSES[klass]
|
92
90
|
end
|
93
|
-
|
94
91
|
end
|
95
|
-
|
96
92
|
end
|
97
93
|
|
98
94
|
runner Nanoc::CLI::Commands::ShowPlugins
|
@@ -8,18 +8,16 @@ Prints the rules used for all items and layouts in the current site.
|
|
8
8
|
"
|
9
9
|
|
10
10
|
module Nanoc::CLI::Commands
|
11
|
-
|
12
11
|
class ShowRules < ::Nanoc::CLI::CommandRunner
|
13
|
-
|
14
12
|
def run
|
15
13
|
require_site
|
16
14
|
|
17
15
|
@c = Nanoc::CLI::ANSIStringColorizer
|
18
16
|
@calc = site.compiler.rule_memory_calculator
|
19
17
|
|
20
|
-
# TODO explain /foo/
|
21
|
-
# TODO explain content/foo.html
|
22
|
-
# TODO explain output/foo/index.html
|
18
|
+
# TODO: explain /foo/
|
19
|
+
# TODO: explain content/foo.html
|
20
|
+
# TODO: explain output/foo/index.html
|
23
21
|
|
24
22
|
site.items.each { |i| explain_item(i) }
|
25
23
|
site.layouts.each { |l| explain_layout(l) }
|
@@ -36,16 +34,16 @@ module Nanoc::CLI::Commands
|
|
36
34
|
puts ' (nothing)'
|
37
35
|
else
|
38
36
|
@calc[rep].each do |mem|
|
39
|
-
puts ' %s %s'
|
37
|
+
puts format(' %s %s',
|
40
38
|
@c.c(format('%-10s', mem[0].to_s), :blue),
|
41
|
-
mem[1..-1].map
|
42
|
-
|
39
|
+
mem[1..-1].map(&:inspect).join(', ')
|
40
|
+
)
|
43
41
|
end
|
44
42
|
if rep.raw_path
|
45
|
-
puts ' %s %s'
|
43
|
+
puts format(' %s %s',
|
46
44
|
@c.c(format('%-10s', 'write to'), :blue),
|
47
45
|
rep.raw_path
|
48
|
-
|
46
|
+
)
|
49
47
|
end
|
50
48
|
end
|
51
49
|
end
|
@@ -55,15 +53,13 @@ module Nanoc::CLI::Commands
|
|
55
53
|
def explain_layout(layout)
|
56
54
|
puts "#{@c.c('Layout ' + layout.identifier, :bold, :yellow)}:"
|
57
55
|
puts " (from #{layout[:filename]})" if layout[:filename]
|
58
|
-
puts ' %s %s'
|
56
|
+
puts format(' %s %s',
|
59
57
|
@c.c(format('%-10s', 'filter'), :blue),
|
60
|
-
@calc[layout].map
|
61
|
-
|
58
|
+
@calc[layout].map(&:inspect).join(', ')
|
59
|
+
)
|
62
60
|
puts
|
63
61
|
end
|
64
|
-
|
65
62
|
end
|
66
|
-
|
67
63
|
end
|
68
64
|
|
69
65
|
runner Nanoc::CLI::Commands::ShowRules
|
@@ -8,9 +8,7 @@ for data sources which rely on slow external APIs.
|
|
8
8
|
EOS
|
9
9
|
|
10
10
|
module Nanoc::CLI::Commands
|
11
|
-
|
12
11
|
class Sync < ::Nanoc::CLI::CommandRunner
|
13
|
-
|
14
12
|
def run
|
15
13
|
# Check arguments
|
16
14
|
if arguments.size != 0
|
@@ -28,9 +26,7 @@ module Nanoc::CLI::Commands
|
|
28
26
|
end
|
29
27
|
end
|
30
28
|
end
|
31
|
-
|
32
29
|
end
|
33
|
-
|
34
30
|
end
|
35
31
|
|
36
32
|
runner Nanoc::CLI::Commands::Sync
|
@@ -16,9 +16,7 @@ required :c, :vcs, 'select the VCS to use'
|
|
16
16
|
flag :y, :yes, 'update the data without warning'
|
17
17
|
|
18
18
|
module Nanoc::CLI::Commands
|
19
|
-
|
20
19
|
class Update < ::Nanoc::CLI::CommandRunner
|
21
|
-
|
22
20
|
def run
|
23
21
|
# Check arguments
|
24
22
|
if arguments.size != 0
|
@@ -57,13 +55,9 @@ module Nanoc::CLI::Commands
|
|
57
55
|
end
|
58
56
|
|
59
57
|
# Update
|
60
|
-
site.data_sources.each
|
61
|
-
data_source.update
|
62
|
-
end
|
58
|
+
site.data_sources.each(&:update)
|
63
59
|
end
|
64
|
-
|
65
60
|
end
|
66
|
-
|
67
61
|
end
|
68
62
|
|
69
63
|
runner Nanoc::CLI::Commands::Update
|
@@ -9,16 +9,12 @@ Validates the site’s CSS files.
|
|
9
9
|
"
|
10
10
|
|
11
11
|
module Nanoc::CLI::Commands
|
12
|
-
|
13
12
|
class ValidateCSS < ::Nanoc::CLI::CommandRunner
|
14
|
-
|
15
13
|
def run
|
16
14
|
warn 'The `validate-css` command is deprecated. Please use the new `check` command instead.'
|
17
15
|
Nanoc::CLI.run %w( check css )
|
18
16
|
end
|
19
|
-
|
20
17
|
end
|
21
|
-
|
22
18
|
end
|
23
19
|
|
24
20
|
runner Nanoc::CLI::Commands::ValidateCSS
|
@@ -9,16 +9,12 @@ Validates the site’s HTML files.
|
|
9
9
|
"
|
10
10
|
|
11
11
|
module Nanoc::CLI::Commands
|
12
|
-
|
13
12
|
class ValidateHTML < ::Nanoc::CLI::CommandRunner
|
14
|
-
|
15
13
|
def run
|
16
14
|
warn 'The `validate-html` command is deprecated. Please use the new `check` command instead.'
|
17
15
|
Nanoc::CLI.run %w( check html )
|
18
16
|
end
|
19
|
-
|
20
17
|
end
|
21
|
-
|
22
18
|
end
|
23
19
|
|
24
20
|
runner Nanoc::CLI::Commands::ValidateHTML
|
@@ -12,9 +12,7 @@ flag :i, :internal, 'validate internal links only'
|
|
12
12
|
flag :e, :external, 'validate external links only'
|
13
13
|
|
14
14
|
module Nanoc::CLI::Commands
|
15
|
-
|
16
15
|
class ValidateLinks < ::Nanoc::CLI::CommandRunner
|
17
|
-
|
18
16
|
def run
|
19
17
|
warn 'The `validate-links` command is deprecated. Please use the new `check` command instead.'
|
20
18
|
|
@@ -23,9 +21,7 @@ module Nanoc::CLI::Commands
|
|
23
21
|
checks << 'elinks' if options[:external]
|
24
22
|
Nanoc::CLI.run ['check', checks].flatten
|
25
23
|
end
|
26
|
-
|
27
24
|
end
|
28
|
-
|
29
25
|
end
|
30
26
|
|
31
27
|
runner Nanoc::CLI::Commands::ValidateLinks
|
@@ -13,9 +13,7 @@ required :o, :host, 'specify the host to listen on (default: 0.0.0.0)'
|
|
13
13
|
required :p, :port, 'specify the port to listen on (default: 3000)'
|
14
14
|
|
15
15
|
module Nanoc::CLI::Commands
|
16
|
-
|
17
16
|
class View < ::Nanoc::CLI::CommandRunner
|
18
|
-
|
19
17
|
DEFAULT_HANDLER_NAME = :thin
|
20
18
|
|
21
19
|
def run
|
@@ -27,8 +25,8 @@ module Nanoc::CLI::Commands
|
|
27
25
|
|
28
26
|
# Set options
|
29
27
|
options_for_rack = {
|
30
|
-
:
|
31
|
-
:
|
28
|
+
Port: (options[:port] || 3000).to_i,
|
29
|
+
Host: (options[:host] || '0.0.0.0')
|
32
30
|
}
|
33
31
|
|
34
32
|
# Get handler
|
@@ -49,7 +47,7 @@ module Nanoc::CLI::Commands
|
|
49
47
|
use Rack::ShowExceptions
|
50
48
|
use Rack::Lint
|
51
49
|
use Rack::Head
|
52
|
-
use Adsf::Rack::IndexFileFinder, :
|
50
|
+
use Adsf::Rack::IndexFileFinder, root: site.config[:output_dir]
|
53
51
|
run Rack::File.new(site.config[:output_dir])
|
54
52
|
end.to_app
|
55
53
|
|
@@ -80,9 +78,7 @@ module Nanoc::CLI::Commands
|
|
80
78
|
# Done
|
81
79
|
exit 1
|
82
80
|
end
|
83
|
-
|
84
81
|
end
|
85
|
-
|
86
82
|
end
|
87
83
|
|
88
84
|
runner Nanoc::CLI::Commands::View
|
@@ -8,9 +8,7 @@ Start the watcher. When a change is detected, the site will be recompiled.
|
|
8
8
|
EOS
|
9
9
|
|
10
10
|
module Nanoc::CLI::Commands
|
11
|
-
|
12
11
|
class Watch < ::Nanoc::CLI::CommandRunner
|
13
|
-
|
14
12
|
def run
|
15
13
|
warn 'WARNING: The `watch` command is deprecated. Please consider using `guard-nanoc` instead (see https://github.com/nanoc/guard-nanoc).'
|
16
14
|
|
@@ -44,7 +42,7 @@ module Nanoc::CLI::Commands
|
|
44
42
|
begin
|
45
43
|
site.compile
|
46
44
|
|
47
|
-
# TODO include icon (--image misc/success-icon.png)
|
45
|
+
# TODO: include icon (--image misc/success-icon.png)
|
48
46
|
notify_on_compilation_success = watcher_config.fetch(:notify_on_compilation_success) { true }
|
49
47
|
if notify_on_compilation_success
|
50
48
|
@notifier.notify('Compilation complete')
|
@@ -53,7 +51,7 @@ module Nanoc::CLI::Commands
|
|
53
51
|
time_spent = ((Time.now - start) * 1000.0).round
|
54
52
|
puts "done in #{format '%is %ims', *(time_spent.divmod(1000))}"
|
55
53
|
rescue Exception => e
|
56
|
-
# TODO include icon (--image misc/error-icon.png)
|
54
|
+
# TODO: include icon (--image misc/error-icon.png)
|
57
55
|
notify_on_compilation_failure = watcher_config.fetch(:notify_on_compilation_failure) { true }
|
58
56
|
if notify_on_compilation_failure
|
59
57
|
@notifier.notify('Compilation failed')
|
@@ -84,7 +82,7 @@ module Nanoc::CLI::Commands
|
|
84
82
|
end
|
85
83
|
|
86
84
|
listener = Listen::Listener.new(*dirs_to_watch).change(&callback)
|
87
|
-
listener_root = Listen::Listener.new('.', :
|
85
|
+
listener_root = Listen::Listener.new('.', filter: files_to_watch, ignore: ignore_dir).change(&callback)
|
88
86
|
|
89
87
|
begin
|
90
88
|
listener_root.start
|
@@ -97,7 +95,6 @@ module Nanoc::CLI::Commands
|
|
97
95
|
|
98
96
|
# Allows sending user notifications in a cross-platform way.
|
99
97
|
class Notifier
|
100
|
-
|
101
98
|
# A list of commandline tool names that can be used to send notifications
|
102
99
|
TOOLS = %w( growlnotify notify-send ) unless defined? TOOLS
|
103
100
|
|
@@ -146,7 +143,7 @@ module Nanoc::CLI::Commands
|
|
146
143
|
end
|
147
144
|
|
148
145
|
def terminal_notify(message)
|
149
|
-
TerminalNotifier.notify(message, :
|
146
|
+
TerminalNotifier.notify(message, title: 'nanoc')
|
150
147
|
end
|
151
148
|
|
152
149
|
def growlnotify_cmd_for(message)
|
@@ -172,11 +169,8 @@ module Nanoc::CLI::Commands
|
|
172
169
|
def on_windows?
|
173
170
|
Nanoc.on_windows?
|
174
171
|
end
|
175
|
-
|
176
172
|
end
|
177
|
-
|
178
173
|
end
|
179
|
-
|
180
174
|
end
|
181
175
|
|
182
176
|
runner Nanoc::CLI::Commands::Watch
|
@@ -1,12 +1,10 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module Nanoc::CLI
|
4
|
-
|
5
4
|
# Catches errors and prints nice diagnostic messages, then exits.
|
6
5
|
#
|
7
6
|
# @api private
|
8
7
|
class ErrorHandler
|
9
|
-
|
10
8
|
# @option params [Nanoc::CLI::Command, nil] command The command that is
|
11
9
|
# currently being executed, or nil if there is none
|
12
10
|
def initialize(params = {})
|
@@ -146,15 +144,15 @@ module Nanoc::CLI
|
|
146
144
|
stream.puts "Crashlog created at #{Time.now}"
|
147
145
|
|
148
146
|
# Sections
|
149
|
-
write_error_message(stream, error, :
|
150
|
-
write_compilation_stack(stream, error, :
|
151
|
-
write_stack_trace(stream, error, :
|
152
|
-
write_version_information(stream, :
|
153
|
-
write_system_information(stream, :
|
154
|
-
write_installed_gems(stream, :
|
155
|
-
write_environment(stream, :
|
156
|
-
write_gemfile_lock(stream, :
|
157
|
-
write_load_paths(stream, :
|
147
|
+
write_error_message(stream, error, verbose: true)
|
148
|
+
write_compilation_stack(stream, error, verbose: true)
|
149
|
+
write_stack_trace(stream, error, verbose: true)
|
150
|
+
write_version_information(stream, verbose: true)
|
151
|
+
write_system_information(stream, verbose: true)
|
152
|
+
write_installed_gems(stream, verbose: true)
|
153
|
+
write_environment(stream, verbose: true)
|
154
|
+
write_gemfile_lock(stream, verbose: true)
|
155
|
+
write_load_paths(stream, verbose: true)
|
158
156
|
end
|
159
157
|
|
160
158
|
protected
|
@@ -356,7 +354,5 @@ module Nanoc::CLI
|
|
356
354
|
stream.puts " #{index}. #{i}"
|
357
355
|
end
|
358
356
|
end
|
359
|
-
|
360
357
|
end
|
361
|
-
|
362
358
|
end
|
data/lib/nanoc/cli/logger.rb
CHANGED
@@ -3,19 +3,17 @@
|
|
3
3
|
require 'singleton'
|
4
4
|
|
5
5
|
module Nanoc::CLI
|
6
|
-
|
7
6
|
# Nanoc::CLI::Logger is a singleton class responsible for generating
|
8
7
|
# feedback in the terminal.
|
9
8
|
class Logger
|
10
|
-
|
11
9
|
# Maps actions (`:create`, `:update`, `:identical`, `:skip` and `:delete`)
|
12
10
|
# onto their ANSI color codes.
|
13
11
|
ACTION_COLORS = {
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
12
|
+
create: "\e[32m", # green
|
13
|
+
update: "\e[33m", # yellow
|
14
|
+
identical: '', # (nothing)
|
15
|
+
skip: '', # (nothing)
|
16
|
+
delete: "\e[31m" # red
|
19
17
|
}
|
20
18
|
|
21
19
|
include Singleton
|
@@ -43,13 +41,13 @@ module Nanoc::CLI
|
|
43
41
|
def file(level, action, name, duration = nil)
|
44
42
|
log(
|
45
43
|
level,
|
46
|
-
'%s%12s%s %s%s'
|
44
|
+
format('%s%12s%s %s%s',
|
47
45
|
ACTION_COLORS[action.to_sym],
|
48
46
|
action,
|
49
47
|
"\e[0m",
|
50
|
-
duration.nil? ? '' : '[%2.2fs] '
|
48
|
+
duration.nil? ? '' : format('[%2.2fs] ', duration),
|
51
49
|
name
|
52
|
-
|
50
|
+
)
|
53
51
|
)
|
54
52
|
end
|
55
53
|
|
@@ -69,7 +67,5 @@ module Nanoc::CLI
|
|
69
67
|
# Log when level permits it
|
70
68
|
io.puts(message) if @level == :low || @level == level
|
71
69
|
end
|
72
|
-
|
73
70
|
end
|
74
|
-
|
75
71
|
end
|
@@ -1,13 +1,9 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module Nanoc::CLI
|
4
|
-
|
5
4
|
module StreamCleaners
|
6
|
-
|
7
5
|
autoload 'Abstract', 'nanoc/cli/stream_cleaners/abstract'
|
8
6
|
autoload 'ANSIColors', 'nanoc/cli/stream_cleaners/ansi_colors'
|
9
7
|
autoload 'UTF8', 'nanoc/cli/stream_cleaners/utf8'
|
10
|
-
|
11
8
|
end
|
12
|
-
|
13
9
|
end
|