nanoc 3.6.7 → 3.6.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CONTRIBUTING.md +9 -13
- data/Gemfile +5 -1
- data/Gemfile.lock +70 -45
- data/NEWS.md +15 -1
- data/README.md +12 -119
- data/doc/yardoc_handlers/identifier.rb +34 -0
- data/lib/nanoc/base/compilation/checksum_store.rb +2 -2
- data/lib/nanoc/base/compilation/compiler.rb +3 -3
- data/lib/nanoc/base/compilation/compiler_dsl.rb +20 -15
- data/lib/nanoc/base/compilation/dependency_tracker.rb +4 -4
- data/lib/nanoc/base/compilation/filter.rb +5 -5
- data/lib/nanoc/base/compilation/item_rep_proxy.rb +2 -2
- data/lib/nanoc/base/compilation/item_rep_recorder_proxy.rb +3 -3
- data/lib/nanoc/base/compilation/outdatedness_checker.rb +49 -46
- data/lib/nanoc/base/compilation/rule.rb +6 -4
- data/lib/nanoc/base/compilation/rule_context.rb +10 -4
- data/lib/nanoc/base/compilation/rule_memory_calculator.rb +8 -7
- data/lib/nanoc/base/compilation/rule_memory_store.rb +2 -2
- data/lib/nanoc/base/compilation/rules_collection.rb +2 -2
- data/lib/nanoc/base/core_ext/array.rb +2 -2
- data/lib/nanoc/base/core_ext/date.rb +4 -2
- data/lib/nanoc/base/core_ext/hash.rb +3 -3
- data/lib/nanoc/base/core_ext/pathname.rb +1 -1
- data/lib/nanoc/base/directed_graph.rb +6 -6
- data/lib/nanoc/base/errors.rb +1 -1
- data/lib/nanoc/base/memoization.rb +4 -4
- data/lib/nanoc/base/notification_center.rb +1 -1
- data/lib/nanoc/base/ordered_hash.rb +207 -179
- data/lib/nanoc/base/plugin_registry.rb +7 -7
- data/lib/nanoc/base/result_data/item_rep.rb +25 -26
- data/lib/nanoc/base/source_data/code_snippet.rb +2 -2
- data/lib/nanoc/base/source_data/configuration.rb +1 -1
- data/lib/nanoc/base/source_data/data_source.rb +2 -2
- data/lib/nanoc/base/source_data/item.rb +16 -15
- data/lib/nanoc/base/source_data/item_array.rb +4 -4
- data/lib/nanoc/base/source_data/layout.rb +5 -5
- data/lib/nanoc/base/source_data/site.rb +6 -6
- data/lib/nanoc/base/store.rb +8 -8
- data/lib/nanoc/cli/cleaning_stream.rb +11 -12
- data/lib/nanoc/cli/command_runner.rb +8 -8
- data/lib/nanoc/cli/commands/autocompile.rb +5 -4
- data/lib/nanoc/cli/commands/check.rb +12 -11
- data/lib/nanoc/cli/commands/compile.rb +50 -52
- data/lib/nanoc/cli/commands/create-item.rb +6 -6
- data/lib/nanoc/cli/commands/create-layout.rb +6 -6
- data/lib/nanoc/cli/commands/create-site.rb +10 -13
- data/lib/nanoc/cli/commands/deploy.rb +11 -11
- data/lib/nanoc/cli/commands/prune.rb +10 -10
- data/lib/nanoc/cli/commands/shell.rb +7 -7
- data/lib/nanoc/cli/commands/show-data.rb +22 -23
- data/lib/nanoc/cli/commands/show-plugins.rb +3 -3
- data/lib/nanoc/cli/commands/show-rules.rb +8 -8
- data/lib/nanoc/cli/commands/sync.rb +4 -2
- data/lib/nanoc/cli/commands/update.rb +4 -4
- data/lib/nanoc/cli/commands/validate-css.rb +3 -3
- data/lib/nanoc/cli/commands/validate-html.rb +3 -3
- data/lib/nanoc/cli/commands/validate-links.rb +3 -3
- data/lib/nanoc/cli/commands/view.rb +5 -3
- data/lib/nanoc/cli/commands/watch.rb +12 -12
- data/lib/nanoc/cli/error_handler.rb +58 -58
- data/lib/nanoc/cli/logger.rb +6 -6
- data/lib/nanoc/cli/stream_cleaners/abstract.rb +1 -1
- data/lib/nanoc/cli/stream_cleaners.rb +0 -1
- data/lib/nanoc/cli.rb +24 -22
- data/lib/nanoc/data_sources/deprecated/delicious.rb +1 -1
- data/lib/nanoc/data_sources/deprecated/last_fm.rb +16 -14
- data/lib/nanoc/data_sources/deprecated/twitter.rb +1 -1
- data/lib/nanoc/data_sources/filesystem.rb +22 -20
- data/lib/nanoc/data_sources/filesystem_unified.rb +4 -5
- data/lib/nanoc/data_sources/filesystem_verbose.rb +2 -3
- data/lib/nanoc/data_sources/static.rb +2 -2
- data/lib/nanoc/extra/auto_compiler.rb +3 -3
- data/lib/nanoc/extra/checking/check.rb +3 -3
- data/lib/nanoc/extra/checking/checks/css.rb +2 -2
- data/lib/nanoc/extra/checking/checks/external_links.rb +9 -9
- data/lib/nanoc/extra/checking/checks/html.rb +2 -3
- data/lib/nanoc/extra/checking/checks/internal_links.rb +6 -7
- data/lib/nanoc/extra/checking/checks/stale.rb +6 -6
- data/lib/nanoc/extra/checking/dsl.rb +1 -1
- data/lib/nanoc/extra/checking/runner.rb +19 -19
- data/lib/nanoc/extra/chick.rb +11 -9
- data/lib/nanoc/extra/core_ext/pathname.rb +1 -2
- data/lib/nanoc/extra/core_ext/time.rb +2 -2
- data/lib/nanoc/extra/core_ext.rb +0 -1
- data/lib/nanoc/extra/deployer.rb +2 -2
- data/lib/nanoc/extra/deployers/fog.rb +12 -12
- data/lib/nanoc/extra/deployers/rsync.rb +6 -6
- data/lib/nanoc/extra/file_proxy.rb +1 -1
- data/lib/nanoc/extra/filesystem_tools.rb +5 -5
- data/lib/nanoc/extra/link_collector.rb +4 -3
- data/lib/nanoc/extra/pruner.rb +5 -5
- data/lib/nanoc/extra/validators/links.rb +3 -3
- data/lib/nanoc/extra/vcs.rb +1 -1
- data/lib/nanoc/filters/asciidoc.rb +3 -3
- data/lib/nanoc/filters/bluecloth.rb +1 -1
- data/lib/nanoc/filters/coderay.rb +2 -2
- data/lib/nanoc/filters/coffeescript.rb +2 -0
- data/lib/nanoc/filters/colorize_syntax.rb +16 -16
- data/lib/nanoc/filters/erb.rb +5 -5
- data/lib/nanoc/filters/erubis.rb +1 -1
- data/lib/nanoc/filters/haml.rb +1 -1
- data/lib/nanoc/filters/handlebars.rb +2 -2
- data/lib/nanoc/filters/kramdown.rb +1 -1
- data/lib/nanoc/filters/less.rb +1 -1
- data/lib/nanoc/filters/markaby.rb +1 -1
- data/lib/nanoc/filters/maruku.rb +1 -1
- data/lib/nanoc/filters/mustache.rb +1 -1
- data/lib/nanoc/filters/pandoc.rb +1 -1
- data/lib/nanoc/filters/rainpress.rb +1 -1
- data/lib/nanoc/filters/rdiscount.rb +1 -1
- data/lib/nanoc/filters/rdoc.rb +1 -1
- data/lib/nanoc/filters/redcarpet.rb +2 -2
- data/lib/nanoc/filters/redcloth.rb +9 -9
- data/lib/nanoc/filters/relativize_paths.rb +7 -8
- data/lib/nanoc/filters/rubypants.rb +1 -1
- data/lib/nanoc/filters/sass/sass_filesystem_importer.rb +1 -1
- data/lib/nanoc/filters/sass.rb +1 -1
- data/lib/nanoc/filters/slim.rb +1 -1
- data/lib/nanoc/filters/typogruby.rb +1 -1
- data/lib/nanoc/filters/uglify_js.rb +1 -1
- data/lib/nanoc/filters/xsl.rb +9 -7
- data/lib/nanoc/filters/yui_compressor.rb +2 -0
- data/lib/nanoc/helpers/blogging.rb +6 -6
- data/lib/nanoc/helpers/breadcrumbs.rb +1 -1
- data/lib/nanoc/helpers/capturing.rb +2 -2
- data/lib/nanoc/helpers/filtering.rb +1 -1
- data/lib/nanoc/helpers/html_escape.rb +3 -3
- data/lib/nanoc/helpers/link_to.rb +6 -6
- data/lib/nanoc/helpers/rendering.rb +2 -2
- data/lib/nanoc/helpers/tagging.rb +2 -2
- data/lib/nanoc/helpers/text.rb +1 -1
- data/lib/nanoc/helpers/xml_sitemap.rb +2 -2
- data/lib/nanoc/version.rb +1 -1
- data/lib/nanoc.rb +3 -2
- data/nanoc.gemspec +2 -6
- data/tasks/rubocop.rake +5 -0
- data/test/base/test_compiler_dsl.rb +20 -1
- data/test/cli/commands/test_compile.rb +4 -3
- data/test/cli/test_error_handler.rb +32 -0
- data/test/filters/test_erb.rb +1 -1
- data/test/filters/test_less.rb +1 -1
- data/test/filters/test_xsl.rb +95 -8
- metadata +30 -84
@@ -67,11 +67,11 @@ module Nanoc
|
|
67
67
|
#
|
68
68
|
# @option params [Symbol, nil] :binary (true) Whether or not this item is
|
69
69
|
# binary
|
70
|
-
def initialize(raw_content_or_raw_filename, attributes, identifier, params=nil)
|
70
|
+
def initialize(raw_content_or_raw_filename, attributes, identifier, params = nil)
|
71
71
|
# Parse params
|
72
72
|
params ||= {}
|
73
73
|
params = { :mtime => params } if params.is_a?(Time)
|
74
|
-
params[:binary] = false unless params.
|
74
|
+
params[:binary] = false unless params.key?(:binary)
|
75
75
|
|
76
76
|
if raw_content_or_raw_filename.nil?
|
77
77
|
raise "attempted to create an item with no content/filename (identifier #{identifier})"
|
@@ -126,7 +126,7 @@ module Nanoc
|
|
126
126
|
# snapshot if no snapshot is specified)
|
127
127
|
#
|
128
128
|
# @see ItemRep#compiled_content
|
129
|
-
def compiled_content(params={})
|
129
|
+
def compiled_content(params = {})
|
130
130
|
# Get rep
|
131
131
|
rep_name = params[:rep] || :default
|
132
132
|
rep = reps.find { |r| r.name == rep_name }
|
@@ -148,7 +148,7 @@ module Nanoc
|
|
148
148
|
#
|
149
149
|
# @return [String] The path of the given rep ( or the default rep if no
|
150
150
|
# rep is specified)
|
151
|
-
def path(params={})
|
151
|
+
def path(params = {})
|
152
152
|
rep_name = params[:rep] || :default
|
153
153
|
|
154
154
|
# Get rep
|
@@ -226,7 +226,7 @@ module Nanoc
|
|
226
226
|
#
|
227
227
|
# @return [Object] An unique reference to this object
|
228
228
|
def reference
|
229
|
-
[ type,
|
229
|
+
[ type, identifier ]
|
230
230
|
end
|
231
231
|
|
232
232
|
# Prevents all further modifications to its attributes.
|
@@ -241,21 +241,22 @@ module Nanoc
|
|
241
241
|
end
|
242
242
|
|
243
243
|
def inspect
|
244
|
-
"<#{self.class} identifier=\"#{
|
244
|
+
"<#{self.class} identifier=\"#{identifier}\" binary?=#{self.binary?}>"
|
245
245
|
end
|
246
246
|
|
247
247
|
# @return [String] The checksum for this object. If its contents change,
|
248
248
|
# the checksum will change as well.
|
249
249
|
def checksum
|
250
|
-
content_checksum =
|
251
|
-
if
|
252
|
-
|
250
|
+
content_checksum =
|
251
|
+
if binary?
|
252
|
+
if File.exist?(raw_filename)
|
253
|
+
Pathname.new(raw_filename).checksum
|
254
|
+
else
|
255
|
+
''.checksum
|
256
|
+
end
|
253
257
|
else
|
254
|
-
|
258
|
+
@raw_content.checksum
|
255
259
|
end
|
256
|
-
else
|
257
|
-
@raw_content.checksum
|
258
|
-
end
|
259
260
|
|
260
261
|
attributes = @attributes.dup
|
261
262
|
attributes.delete(:file)
|
@@ -266,11 +267,11 @@ module Nanoc
|
|
266
267
|
memoize :checksum
|
267
268
|
|
268
269
|
def hash
|
269
|
-
self.class.hash ^
|
270
|
+
self.class.hash ^ identifier.hash
|
270
271
|
end
|
271
272
|
|
272
273
|
def eql?(other)
|
273
|
-
self.class == other.class &&
|
274
|
+
self.class == other.class && identifier == other.identifier
|
274
275
|
end
|
275
276
|
|
276
277
|
def ==(other)
|
@@ -27,13 +27,13 @@ module Nanoc
|
|
27
27
|
|
28
28
|
def freeze
|
29
29
|
@items.freeze
|
30
|
-
|
30
|
+
build_mapping
|
31
31
|
super
|
32
32
|
end
|
33
33
|
|
34
34
|
def [](*args)
|
35
35
|
if 1 == args.size && args.first.is_a?(String)
|
36
|
-
|
36
|
+
item_with_identifier(args.first)
|
37
37
|
else
|
38
38
|
@items[*args]
|
39
39
|
end
|
@@ -42,13 +42,13 @@ module Nanoc
|
|
42
42
|
|
43
43
|
def at(arg)
|
44
44
|
if arg.is_a?(String)
|
45
|
-
|
45
|
+
item_with_identifier(arg)
|
46
46
|
else
|
47
47
|
@items[arg]
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
|
51
|
+
protected
|
52
52
|
|
53
53
|
def item_with_identifier(identifier)
|
54
54
|
if self.frozen?
|
@@ -33,7 +33,7 @@ module Nanoc
|
|
33
33
|
# @option params [Time, nil] :mtime (nil) The time when this layout was
|
34
34
|
# last modified. Deprecated; pass the modification time as the `:mtime`
|
35
35
|
# attribute instead.
|
36
|
-
def initialize(raw_content, attributes, identifier, params=nil)
|
36
|
+
def initialize(raw_content, attributes, identifier, params = nil)
|
37
37
|
@raw_content = raw_content
|
38
38
|
@attributes = attributes.symbolize_keys_recursively
|
39
39
|
@identifier = identifier.cleaned_identifier.freeze
|
@@ -78,11 +78,11 @@ module Nanoc
|
|
78
78
|
#
|
79
79
|
# @return [Object] An unique reference to this object
|
80
80
|
def reference
|
81
|
-
[ type,
|
81
|
+
[ type, identifier ]
|
82
82
|
end
|
83
83
|
|
84
84
|
def inspect
|
85
|
-
"<#{self.class} identifier=\"#{
|
85
|
+
"<#{self.class} identifier=\"#{identifier}\">"
|
86
86
|
end
|
87
87
|
|
88
88
|
# @return [String] The checksum for this object. If its contents change,
|
@@ -95,11 +95,11 @@ module Nanoc
|
|
95
95
|
memoize :checksum
|
96
96
|
|
97
97
|
def hash
|
98
|
-
self.class.hash ^
|
98
|
+
self.class.hash ^ identifier.hash
|
99
99
|
end
|
100
100
|
|
101
101
|
def eql?(other)
|
102
|
-
self.class == other.class &&
|
102
|
+
self.class == other.class && identifier == other.identifier
|
103
103
|
end
|
104
104
|
|
105
105
|
def ==(other)
|
@@ -86,10 +86,10 @@ module Nanoc
|
|
86
86
|
# Warn about deprecated data sources
|
87
87
|
# TODO [in nanoc 4.0] remove me
|
88
88
|
case data_source_hash[:type]
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
89
|
+
when 'filesystem'
|
90
|
+
warn "Warning: the 'filesystem' data source has been renamed to 'filesystem_verbose'. Using 'filesystem' will work in nanoc 3.1.x, but it will likely not work anymore in a future release of nanoc. Please update your data source configuration and replace 'filesystem' with 'filesystem_verbose'."
|
91
|
+
when 'filesystem_combined', 'filesystem_compact'
|
92
|
+
warn "Warning: the 'filesystem_combined' and 'filesystem_compact' data source has been merged into the new 'filesystem_unified' data source. Using 'filesystem_combined' and 'filesystem_compact' will work in nanoc 3.1.x, but it will likely not work anymore in a future release of nanoc. Please update your data source configuration and replace 'filesystem_combined' and 'filesystem_compact with 'filesystem_unified'."
|
93
93
|
end
|
94
94
|
|
95
95
|
# Create data source
|
@@ -223,7 +223,7 @@ module Nanoc
|
|
223
223
|
|
224
224
|
# @deprecated It is no longer necessary to explicitly load site data. It
|
225
225
|
# is safe to remove all {#load_data} calls.
|
226
|
-
def load_data(force=false)
|
226
|
+
def load_data(force = false)
|
227
227
|
warn 'It is no longer necessary to call Nanoc::Site#load_data. This method no longer has any effect. All calls to this method can be safely removed.'
|
228
228
|
end
|
229
229
|
|
@@ -281,7 +281,7 @@ module Nanoc
|
|
281
281
|
#
|
282
282
|
# @api private
|
283
283
|
def self.cwd_is_nanoc_site?
|
284
|
-
!
|
284
|
+
!config_filename_for_cwd.nil?
|
285
285
|
end
|
286
286
|
|
287
287
|
# @return [String] filename of the nanoc config file in the current working directory, or nil if there is none
|
data/lib/nanoc/base/store.rb
CHANGED
@@ -44,7 +44,7 @@ module Nanoc
|
|
44
44
|
#
|
45
45
|
# @abstract This method must be implemented by the subclass.
|
46
46
|
def data
|
47
|
-
raise NotImplementedError.new(
|
47
|
+
raise NotImplementedError.new('Nanoc::Store subclasses must implement #data and #data=')
|
48
48
|
end
|
49
49
|
|
50
50
|
# @param new_data The data that has been loaded from the disk
|
@@ -53,7 +53,7 @@ module Nanoc
|
|
53
53
|
#
|
54
54
|
# @return [void]
|
55
55
|
def data=(new_data)
|
56
|
-
raise NotImplementedError.new(
|
56
|
+
raise NotImplementedError.new('Nanoc::Store subclasses must implement #data and #data=')
|
57
57
|
end
|
58
58
|
|
59
59
|
# Loads the data from the filesystem into memory. This method will set the
|
@@ -67,7 +67,7 @@ module Nanoc
|
|
67
67
|
end
|
68
68
|
|
69
69
|
# Check file existance
|
70
|
-
if !File.file?(
|
70
|
+
if !File.file?(filename)
|
71
71
|
no_data_found
|
72
72
|
@loaded = true
|
73
73
|
return
|
@@ -75,7 +75,7 @@ module Nanoc
|
|
75
75
|
|
76
76
|
pstore.transaction do
|
77
77
|
# Check version
|
78
|
-
if pstore[:version] !=
|
78
|
+
if pstore[:version] != version
|
79
79
|
version_mismatch_detected
|
80
80
|
@loaded = true
|
81
81
|
return
|
@@ -98,11 +98,11 @@ module Nanoc
|
|
98
98
|
#
|
99
99
|
# @return [void]
|
100
100
|
def store
|
101
|
-
FileUtils.mkdir_p(File.dirname(
|
101
|
+
FileUtils.mkdir_p(File.dirname(filename))
|
102
102
|
|
103
103
|
pstore.transaction do
|
104
|
-
pstore[:data] =
|
105
|
-
pstore[:version] =
|
104
|
+
pstore[:data] = data
|
105
|
+
pstore[:version] = version
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
@@ -127,7 +127,7 @@ module Nanoc
|
|
127
127
|
private
|
128
128
|
|
129
129
|
def pstore
|
130
|
-
@pstore ||= PStore.new(
|
130
|
+
@pstore ||= PStore.new(filename)
|
131
131
|
end
|
132
132
|
|
133
133
|
end
|
@@ -41,15 +41,15 @@ module Nanoc::CLI
|
|
41
41
|
|
42
42
|
# @see IO#write
|
43
43
|
def write(s)
|
44
|
-
|
45
|
-
@stream.write(
|
44
|
+
_nanoc_swallow_broken_pipe_errors_while do
|
45
|
+
@stream.write(_nanoc_clean(s))
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
49
|
# @see IO#<<
|
50
50
|
def <<(s)
|
51
|
-
|
52
|
-
@stream.<<(
|
51
|
+
_nanoc_swallow_broken_pipe_errors_while do
|
52
|
+
@stream.<<(_nanoc_clean(s))
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
@@ -60,7 +60,7 @@ module Nanoc::CLI
|
|
60
60
|
|
61
61
|
# @see IO#flush
|
62
62
|
def flush
|
63
|
-
|
63
|
+
_nanoc_swallow_broken_pipe_errors_while do
|
64
64
|
@stream.flush
|
65
65
|
end
|
66
66
|
end
|
@@ -72,15 +72,15 @@ module Nanoc::CLI
|
|
72
72
|
|
73
73
|
# @see IO#print
|
74
74
|
def print(s)
|
75
|
-
|
76
|
-
@stream.print(
|
75
|
+
_nanoc_swallow_broken_pipe_errors_while do
|
76
|
+
@stream.print(_nanoc_clean(s))
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
80
|
# @see IO#puts
|
81
81
|
def puts(*s)
|
82
|
-
|
83
|
-
@stream.puts(*s.map { |ss|
|
82
|
+
_nanoc_swallow_broken_pipe_errors_while do
|
83
|
+
@stream.puts(*s.map { |ss| _nanoc_clean(ss) })
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
@@ -116,13 +116,13 @@ module Nanoc::CLI
|
|
116
116
|
|
117
117
|
# @see IO.winsize=
|
118
118
|
def winsize=(arg)
|
119
|
-
@stream.winsize=(arg)
|
119
|
+
@stream.winsize = (arg)
|
120
120
|
end
|
121
121
|
|
122
122
|
protected
|
123
123
|
|
124
124
|
def _nanoc_clean(s)
|
125
|
-
@stream_cleaners.
|
125
|
+
@stream_cleaners.reduce(s) { |m, c| c.clean(m) }
|
126
126
|
end
|
127
127
|
|
128
128
|
def _nanoc_swallow_broken_pipe_errors_while
|
@@ -133,4 +133,3 @@ module Nanoc::CLI
|
|
133
133
|
end
|
134
134
|
|
135
135
|
end
|
136
|
-
|
@@ -11,7 +11,7 @@ module Nanoc::CLI
|
|
11
11
|
# @return [void]
|
12
12
|
def call
|
13
13
|
Nanoc::CLI::ErrorHandler.handle_while(:command => self) do
|
14
|
-
|
14
|
+
run
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -33,7 +33,7 @@ module Nanoc::CLI
|
|
33
33
|
#
|
34
34
|
# @see http://rubydoc.info/gems/cri/Cri/CommandDSL#runner-instance_method
|
35
35
|
def self.call(opts, args, cmd)
|
36
|
-
|
36
|
+
new(opts, args, cmd).call
|
37
37
|
end
|
38
38
|
|
39
39
|
# @return [Boolean] true if the current working directory is a nanoc site
|
@@ -49,7 +49,7 @@ module Nanoc::CLI
|
|
49
49
|
# @return [void]
|
50
50
|
def require_site
|
51
51
|
if site.nil?
|
52
|
-
raise ::Nanoc::Errors::GenericTrivial,
|
52
|
+
raise ::Nanoc::Errors::GenericTrivial, 'The current working directory does not seem to be a nanoc site.'
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
@@ -58,10 +58,10 @@ module Nanoc::CLI
|
|
58
58
|
#
|
59
59
|
# @return [void]
|
60
60
|
def load_site
|
61
|
-
|
62
|
-
print
|
63
|
-
|
64
|
-
puts
|
61
|
+
require_site
|
62
|
+
print 'Loading site data… '
|
63
|
+
site.load
|
64
|
+
puts 'done'
|
65
65
|
end
|
66
66
|
|
67
67
|
# @return [Boolean] true if debug output is enabled, false if not
|
@@ -101,7 +101,7 @@ module Nanoc::CLI
|
|
101
101
|
|
102
102
|
# @return [Array] The compilation stack.
|
103
103
|
def stack
|
104
|
-
(
|
104
|
+
(site && site.compiler.stack) || []
|
105
105
|
end
|
106
106
|
|
107
107
|
end
|
@@ -33,8 +33,8 @@ module Nanoc::CLI::Commands
|
|
33
33
|
require 'rack'
|
34
34
|
|
35
35
|
# Make sure we are in a nanoc site directory
|
36
|
-
|
37
|
-
autocompile_config =
|
36
|
+
require_site
|
37
|
+
autocompile_config = site.config[:autocompile] || {}
|
38
38
|
|
39
39
|
# Set options
|
40
40
|
options_for_rack = {
|
@@ -44,10 +44,11 @@ module Nanoc::CLI::Commands
|
|
44
44
|
|
45
45
|
# Guess which handler we should use
|
46
46
|
handler_option = options[:handler] || autocompile_config[:handler]
|
47
|
-
|
47
|
+
handler = Rack::Handler.get(handler_option)
|
48
|
+
unless handler
|
48
49
|
begin
|
49
50
|
handler = Rack::Handler::Mongrel
|
50
|
-
rescue LoadError
|
51
|
+
rescue LoadError
|
51
52
|
handler = Rack::Handler::WEBrick
|
52
53
|
end
|
53
54
|
end
|
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
usage 'check [options] [names]'
|
4
4
|
summary 'run issue checks'
|
5
|
-
description
|
5
|
+
description "
|
6
6
|
Run issue checks on the current site. If the `--all` option is passed, all available issue checks will be run. If the `--deploy` option is passed, the issue checks marked for deployment will be run.
|
7
|
-
|
7
|
+
"
|
8
8
|
|
9
9
|
flag :a, :all, 'run all checks'
|
10
10
|
flag :L, :list, 'list all checks'
|
@@ -16,7 +16,7 @@ module Nanoc::CLI::Commands
|
|
16
16
|
|
17
17
|
def run
|
18
18
|
validate_options_and_arguments
|
19
|
-
|
19
|
+
require_site
|
20
20
|
|
21
21
|
runner = Nanoc::Extra::Checking::Runner.new(site)
|
22
22
|
|
@@ -25,13 +25,14 @@ module Nanoc::CLI::Commands
|
|
25
25
|
return
|
26
26
|
end
|
27
27
|
|
28
|
-
success =
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
28
|
+
success =
|
29
|
+
if options[:all]
|
30
|
+
runner.run_all
|
31
|
+
elsif options[:deploy]
|
32
|
+
runner.run_for_deploy
|
33
|
+
else
|
34
|
+
runner.run_specific(arguments)
|
35
|
+
end
|
35
36
|
|
36
37
|
unless success
|
37
38
|
raise Nanoc::Errors::GenericTrivial, 'One or more checks failed'
|
@@ -43,7 +44,7 @@ module Nanoc::CLI::Commands
|
|
43
44
|
def validate_options_and_arguments
|
44
45
|
if arguments.empty? && !options[:all] && !options[:deploy] && !options[:list]
|
45
46
|
raise Nanoc::Errors::GenericTrivial,
|
46
|
-
|
47
|
+
'nothing to do (pass either --all, --deploy or --list or a list of checks)'
|
47
48
|
end
|
48
49
|
end
|
49
50
|
|