nanoc 3.7.4 → 3.7.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (284) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +19 -18
  3. data/LICENSE +1 -1
  4. data/NEWS.md +14 -0
  5. data/Rakefile +1 -1
  6. data/doc/yardoc_handlers/identifier.rb +1 -5
  7. data/lib/nanoc.rb +1 -3
  8. data/lib/nanoc/base.rb +1 -4
  9. data/lib/nanoc/base/checksummer.rb +10 -12
  10. data/lib/nanoc/base/compilation/checksum_store.rb +0 -4
  11. data/lib/nanoc/base/compilation/compiled_content_cache.rb +0 -4
  12. data/lib/nanoc/base/compilation/compiler.rb +27 -31
  13. data/lib/nanoc/base/compilation/compiler_dsl.rb +3 -7
  14. data/lib/nanoc/base/compilation/dependency_tracker.rb +2 -6
  15. data/lib/nanoc/base/compilation/filter.rb +1 -7
  16. data/lib/nanoc/base/compilation/item_rep_proxy.rb +0 -4
  17. data/lib/nanoc/base/compilation/item_rep_recorder_proxy.rb +0 -4
  18. data/lib/nanoc/base/compilation/outdatedness_checker.rb +0 -4
  19. data/lib/nanoc/base/compilation/outdatedness_reasons.rb +0 -6
  20. data/lib/nanoc/base/compilation/rule.rb +1 -5
  21. data/lib/nanoc/base/compilation/rule_context.rb +7 -11
  22. data/lib/nanoc/base/compilation/rule_memory_calculator.rb +0 -4
  23. data/lib/nanoc/base/compilation/rule_memory_store.rb +0 -4
  24. data/lib/nanoc/base/compilation/rules_collection.rb +5 -9
  25. data/lib/nanoc/base/context.rb +0 -3
  26. data/lib/nanoc/base/core_ext.rb +0 -1
  27. data/lib/nanoc/base/core_ext/array.rb +0 -2
  28. data/lib/nanoc/base/core_ext/hash.rb +0 -2
  29. data/lib/nanoc/base/core_ext/pathname.rb +0 -2
  30. data/lib/nanoc/base/core_ext/string.rb +0 -2
  31. data/lib/nanoc/base/directed_graph.rb +0 -4
  32. data/lib/nanoc/base/errors.rb +1 -39
  33. data/lib/nanoc/base/memoization.rb +0 -4
  34. data/lib/nanoc/base/notification_center.rb +1 -7
  35. data/lib/nanoc/base/plugin_registry.rb +4 -10
  36. data/lib/nanoc/base/result_data/item_rep.rb +8 -16
  37. data/lib/nanoc/base/source_data/code_snippet.rb +1 -5
  38. data/lib/nanoc/base/source_data/configuration.rb +0 -4
  39. data/lib/nanoc/base/source_data/data_source.rb +2 -5
  40. data/lib/nanoc/base/source_data/item.rb +3 -7
  41. data/lib/nanoc/base/source_data/item_array.rb +1 -5
  42. data/lib/nanoc/base/source_data/layout.rb +2 -6
  43. data/lib/nanoc/base/source_data/site.rb +20 -23
  44. data/lib/nanoc/base/store.rb +1 -5
  45. data/lib/nanoc/base/temp_filename_factory.rb +0 -4
  46. data/lib/nanoc/cli.rb +3 -5
  47. data/lib/nanoc/cli/ansi_string_colorizer.rb +6 -10
  48. data/lib/nanoc/cli/cleaning_stream.rb +2 -6
  49. data/lib/nanoc/cli/command_runner.rb +1 -5
  50. data/lib/nanoc/cli/commands/autocompile.rb +2 -6
  51. data/lib/nanoc/cli/commands/check.rb +0 -4
  52. data/lib/nanoc/cli/commands/compile.rb +12 -27
  53. data/lib/nanoc/cli/commands/create-item.rb +1 -5
  54. data/lib/nanoc/cli/commands/create-layout.rb +0 -4
  55. data/lib/nanoc/cli/commands/create-site.rb +2 -8
  56. data/lib/nanoc/cli/commands/deploy.rb +3 -7
  57. data/lib/nanoc/cli/commands/prune.rb +2 -6
  58. data/lib/nanoc/cli/commands/shell.rb +4 -8
  59. data/lib/nanoc/cli/commands/show-data.rb +3 -7
  60. data/lib/nanoc/cli/commands/show-plugins.rb +3 -7
  61. data/lib/nanoc/cli/commands/show-rules.rb +11 -15
  62. data/lib/nanoc/cli/commands/sync.rb +0 -4
  63. data/lib/nanoc/cli/commands/update.rb +1 -7
  64. data/lib/nanoc/cli/commands/validate-css.rb +0 -4
  65. data/lib/nanoc/cli/commands/validate-html.rb +0 -4
  66. data/lib/nanoc/cli/commands/validate-links.rb +0 -4
  67. data/lib/nanoc/cli/commands/view.rb +3 -7
  68. data/lib/nanoc/cli/commands/watch.rb +4 -10
  69. data/lib/nanoc/cli/error_handler.rb +9 -13
  70. data/lib/nanoc/cli/logger.rb +8 -12
  71. data/lib/nanoc/cli/stream_cleaners.rb +0 -4
  72. data/lib/nanoc/cli/stream_cleaners/abstract.rb +1 -5
  73. data/lib/nanoc/cli/stream_cleaners/ansi_colors.rb +0 -4
  74. data/lib/nanoc/cli/stream_cleaners/utf8.rb +1 -5
  75. data/lib/nanoc/data_sources.rb +2 -4
  76. data/lib/nanoc/data_sources/deprecated/delicious.rb +6 -10
  77. data/lib/nanoc/data_sources/deprecated/last_fm.rb +7 -11
  78. data/lib/nanoc/data_sources/deprecated/twitter.rb +2 -6
  79. data/lib/nanoc/data_sources/filesystem.rb +10 -13
  80. data/lib/nanoc/data_sources/filesystem_unified.rb +0 -4
  81. data/lib/nanoc/data_sources/filesystem_verbose.rb +0 -4
  82. data/lib/nanoc/data_sources/static.rb +4 -8
  83. data/lib/nanoc/extra.rb +2 -4
  84. data/lib/nanoc/extra/auto_compiler.rb +2 -6
  85. data/lib/nanoc/extra/checking.rb +0 -4
  86. data/lib/nanoc/extra/checking/check.rb +0 -4
  87. data/lib/nanoc/extra/checking/checks.rb +0 -2
  88. data/lib/nanoc/extra/checking/checks/css.rb +6 -6
  89. data/lib/nanoc/extra/checking/checks/external_links.rb +3 -11
  90. data/lib/nanoc/extra/checking/checks/html.rb +6 -6
  91. data/lib/nanoc/extra/checking/checks/internal_links.rb +3 -7
  92. data/lib/nanoc/extra/checking/checks/stale.rb +3 -7
  93. data/lib/nanoc/extra/checking/dsl.rb +0 -4
  94. data/lib/nanoc/extra/checking/issue.rb +0 -4
  95. data/lib/nanoc/extra/checking/runner.rb +4 -7
  96. data/lib/nanoc/extra/chick.rb +7 -17
  97. data/lib/nanoc/extra/core_ext.rb +0 -1
  98. data/lib/nanoc/extra/core_ext/pathname.rb +0 -4
  99. data/lib/nanoc/extra/core_ext/time.rb +0 -2
  100. data/lib/nanoc/extra/deployer.rb +0 -4
  101. data/lib/nanoc/extra/deployers.rb +0 -4
  102. data/lib/nanoc/extra/deployers/fog.rb +7 -11
  103. data/lib/nanoc/extra/deployers/rsync.rb +1 -5
  104. data/lib/nanoc/extra/file_proxy.rb +1 -5
  105. data/lib/nanoc/extra/filesystem_tools.rb +37 -12
  106. data/lib/nanoc/extra/jruby_nokogiri_warner.rb +0 -4
  107. data/lib/nanoc/extra/link_collector.rb +3 -7
  108. data/lib/nanoc/extra/piper.rb +0 -6
  109. data/lib/nanoc/extra/pruner.rb +1 -7
  110. data/lib/nanoc/extra/validators.rb +0 -4
  111. data/lib/nanoc/extra/validators/links.rb +0 -4
  112. data/lib/nanoc/extra/validators/w3c.rb +0 -4
  113. data/lib/nanoc/extra/vcs.rb +3 -7
  114. data/lib/nanoc/extra/vcses.rb +0 -2
  115. data/lib/nanoc/extra/vcses/bazaar.rb +0 -4
  116. data/lib/nanoc/extra/vcses/dummy.rb +0 -4
  117. data/lib/nanoc/extra/vcses/git.rb +0 -4
  118. data/lib/nanoc/extra/vcses/mercurial.rb +0 -4
  119. data/lib/nanoc/extra/vcses/subversion.rb +0 -4
  120. data/lib/nanoc/filters.rb +0 -2
  121. data/lib/nanoc/filters/asciidoc.rb +1 -5
  122. data/lib/nanoc/filters/bluecloth.rb +0 -2
  123. data/lib/nanoc/filters/coderay.rb +0 -2
  124. data/lib/nanoc/filters/coffeescript.rb +0 -4
  125. data/lib/nanoc/filters/colorize_syntax.rb +17 -15
  126. data/lib/nanoc/filters/erb.rb +1 -3
  127. data/lib/nanoc/filters/erubis.rb +2 -4
  128. data/lib/nanoc/filters/haml.rb +2 -4
  129. data/lib/nanoc/filters/handlebars.rb +0 -4
  130. data/lib/nanoc/filters/kramdown.rb +7 -4
  131. data/lib/nanoc/filters/less.rb +1 -3
  132. data/lib/nanoc/filters/markaby.rb +0 -2
  133. data/lib/nanoc/filters/maruku.rb +0 -2
  134. data/lib/nanoc/filters/mustache.rb +1 -5
  135. data/lib/nanoc/filters/pandoc.rb +0 -2
  136. data/lib/nanoc/filters/rainpress.rb +0 -2
  137. data/lib/nanoc/filters/rdiscount.rb +0 -2
  138. data/lib/nanoc/filters/rdoc.rb +0 -2
  139. data/lib/nanoc/filters/redcarpet.rb +0 -4
  140. data/lib/nanoc/filters/redcloth.rb +0 -2
  141. data/lib/nanoc/filters/relativize_paths.rb +2 -4
  142. data/lib/nanoc/filters/rubypants.rb +0 -2
  143. data/lib/nanoc/filters/sass.rb +2 -4
  144. data/lib/nanoc/filters/sass/sass_filesystem_importer.rb +0 -2
  145. data/lib/nanoc/filters/slim.rb +2 -6
  146. data/lib/nanoc/filters/typogruby.rb +0 -4
  147. data/lib/nanoc/filters/uglify_js.rb +0 -2
  148. data/lib/nanoc/filters/xsl.rb +1 -5
  149. data/lib/nanoc/filters/yui_compressor.rb +0 -4
  150. data/lib/nanoc/helpers.rb +0 -2
  151. data/lib/nanoc/helpers/blogging.rb +12 -20
  152. data/lib/nanoc/helpers/breadcrumbs.rb +0 -4
  153. data/lib/nanoc/helpers/capturing.rb +2 -10
  154. data/lib/nanoc/helpers/filtering.rb +0 -4
  155. data/lib/nanoc/helpers/html_escape.rb +3 -7
  156. data/lib/nanoc/helpers/link_to.rb +0 -4
  157. data/lib/nanoc/helpers/rendering.rb +8 -12
  158. data/lib/nanoc/helpers/tagging.rb +0 -4
  159. data/lib/nanoc/helpers/text.rb +1 -5
  160. data/lib/nanoc/helpers/xml_sitemap.rb +3 -7
  161. data/lib/nanoc/tasks/clean.rb +1 -7
  162. data/lib/nanoc/tasks/deploy/rsync.rake +0 -2
  163. data/lib/nanoc/tasks/validate.rake +0 -4
  164. data/lib/nanoc/version.rb +1 -3
  165. data/nanoc.gemspec +12 -9
  166. data/tasks/rubocop.rake +1 -1
  167. data/tasks/test.rake +6 -7
  168. data/test/base/checksummer_spec.rb +28 -44
  169. data/test/base/core_ext/array_spec.rb +1 -9
  170. data/test/base/core_ext/hash_spec.rb +7 -19
  171. data/test/base/core_ext/pathname_spec.rb +2 -4
  172. data/test/base/core_ext/string_spec.rb +0 -4
  173. data/test/base/temp_filename_factory_spec.rb +0 -8
  174. data/test/base/test_checksum_store.rb +0 -2
  175. data/test/base/test_code_snippet.rb +0 -2
  176. data/test/base/test_compiler.rb +15 -17
  177. data/test/base/test_compiler_dsl.rb +7 -9
  178. data/test/base/test_context.rb +2 -4
  179. data/test/base/test_data_source.rb +0 -2
  180. data/test/base/test_dependency_tracker.rb +0 -2
  181. data/test/base/test_directed_graph.rb +2 -4
  182. data/test/base/test_filter.rb +5 -7
  183. data/test/base/test_item.rb +17 -13
  184. data/test/base/test_item_array.rb +2 -4
  185. data/test/base/test_item_rep.rb +79 -73
  186. data/test/base/test_layout.rb +3 -5
  187. data/test/base/test_memoization.rb +13 -21
  188. data/test/base/test_notification_center.rb +0 -2
  189. data/test/base/test_outdatedness_checker.rb +34 -36
  190. data/test/base/test_plugin.rb +0 -2
  191. data/test/base/test_rule.rb +3 -5
  192. data/test/base/test_rule_context.rb +4 -6
  193. data/test/base/test_site.rb +9 -17
  194. data/test/base/test_store.rb +2 -6
  195. data/test/cli/commands/test_check.rb +1 -3
  196. data/test/cli/commands/test_compile.rb +24 -15
  197. data/test/cli/commands/test_create_item.rb +1 -3
  198. data/test/cli/commands/test_create_layout.rb +0 -2
  199. data/test/cli/commands/test_create_site.rb +0 -3
  200. data/test/cli/commands/test_deploy.rb +9 -11
  201. data/test/cli/commands/test_help.rb +0 -2
  202. data/test/cli/commands/test_info.rb +0 -2
  203. data/test/cli/commands/test_prune.rb +6 -8
  204. data/test/cli/commands/test_sync.rb +0 -2
  205. data/test/cli/commands/test_update.rb +0 -2
  206. data/test/cli/commands/test_watch.rb +4 -6
  207. data/test/cli/test_cleaning_stream.rb +4 -6
  208. data/test/cli/test_cli.rb +9 -5
  209. data/test/cli/test_error_handler.rb +9 -7
  210. data/test/cli/test_logger.rb +0 -2
  211. data/test/data_sources/test_filesystem.rb +8 -10
  212. data/test/data_sources/test_filesystem_unified.rb +35 -34
  213. data/test/data_sources/test_filesystem_verbose.rb +31 -33
  214. data/test/data_sources/test_static.rb +20 -21
  215. data/test/extra/checking/checks/test_css.rb +23 -2
  216. data/test/extra/checking/checks/test_external_links.rb +2 -4
  217. data/test/extra/checking/checks/test_html.rb +4 -3
  218. data/test/extra/checking/checks/test_internal_links.rb +1 -3
  219. data/test/extra/checking/checks/test_stale.rb +4 -6
  220. data/test/extra/checking/test_check.rb +0 -2
  221. data/test/extra/checking/test_dsl.rb +1 -3
  222. data/test/extra/checking/test_runner.rb +0 -2
  223. data/test/extra/core_ext/test_pathname.rb +0 -3
  224. data/test/extra/core_ext/test_time.rb +0 -2
  225. data/test/extra/deployers/test_fog.rb +13 -15
  226. data/test/extra/deployers/test_rsync.rb +4 -6
  227. data/test/extra/test_auto_compiler.rb +47 -25
  228. data/test/extra/test_file_proxy.rb +1 -3
  229. data/test/extra/test_filesystem_tools.rb +47 -7
  230. data/test/extra/test_link_collector.rb +0 -2
  231. data/test/extra/test_piper.rb +3 -5
  232. data/test/extra/test_vcs.rb +0 -2
  233. data/test/extra/validators/test_links.rb +0 -1
  234. data/test/extra/validators/test_w3c.rb +2 -4
  235. data/test/filters/test_asciidoc.rb +0 -2
  236. data/test/filters/test_bluecloth.rb +0 -2
  237. data/test/filters/test_coderay.rb +2 -4
  238. data/test/filters/test_coffeescript.rb +0 -2
  239. data/test/filters/test_colorize_syntax.rb +16 -18
  240. data/test/filters/test_erb.rb +12 -14
  241. data/test/filters/test_erubis.rb +4 -6
  242. data/test/filters/test_haml.rb +7 -9
  243. data/test/filters/test_handlebars.rb +10 -12
  244. data/test/filters/test_kramdown.rb +13 -1
  245. data/test/filters/test_less.rb +9 -11
  246. data/test/filters/test_markaby.rb +0 -2
  247. data/test/filters/test_maruku.rb +0 -2
  248. data/test/filters/test_mustache.rb +4 -6
  249. data/test/filters/test_pandoc.rb +1 -3
  250. data/test/filters/test_rainpress.rb +1 -3
  251. data/test/filters/test_rdiscount.rb +1 -3
  252. data/test/filters/test_rdoc.rb +0 -2
  253. data/test/filters/test_redcarpet.rb +6 -8
  254. data/test/filters/test_redcloth.rb +1 -3
  255. data/test/filters/test_relativize_paths.rb +29 -34
  256. data/test/filters/test_rubypants.rb +0 -2
  257. data/test/filters/test_sass.rb +8 -10
  258. data/test/filters/test_slim.rb +2 -4
  259. data/test/filters/test_typogruby.rb +0 -3
  260. data/test/filters/test_uglify_js.rb +2 -4
  261. data/test/filters/test_xsl.rb +16 -18
  262. data/test/filters/test_yui_compressor.rb +3 -5
  263. data/test/fixtures/vcr_cassettes/css_run_parse_error.yml +65 -0
  264. data/test/gem_loader.rb +1 -1
  265. data/test/helper.rb +11 -15
  266. data/test/helpers/test_blogging.rb +61 -63
  267. data/test/helpers/test_breadcrumbs.rb +0 -2
  268. data/test/helpers/test_capturing.rb +4 -6
  269. data/test/helpers/test_filtering.rb +2 -4
  270. data/test/helpers/test_html_escape.rb +0 -2
  271. data/test/helpers/test_link_to.rb +5 -6
  272. data/test/helpers/test_rendering.rb +2 -4
  273. data/test/helpers/test_tagging.rb +9 -11
  274. data/test/helpers/test_text.rb +6 -8
  275. data/test/helpers/test_xml_sitemap.rb +11 -13
  276. data/test/tasks/test_clean.rb +0 -2
  277. data/test/test_gem.rb +1 -3
  278. metadata +15 -14
  279. data/Gemfile.lock +0 -252
  280. data/lib/nanoc/base/core_ext/date.rb +0 -29
  281. data/lib/nanoc/base/ordered_hash.rb +0 -228
  282. data/lib/nanoc/extra/core_ext/enumerable.rb +0 -33
  283. data/test/base/core_ext/date_spec.rb +0 -15
  284. data/test/extra/core_ext/test_enumerable.rb +0 -28
@@ -1,16 +1,14 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Nanoc::CLI
4
-
5
4
  # A command runner subclass for nanoc commands that adds nanoc-specific
6
5
  # convenience methods and error handling.
7
6
  class CommandRunner < ::Cri::CommandRunner
8
-
9
7
  # @see http://rubydoc.info/gems/cri/Cri/CommandRunner#call-instance_method
10
8
  #
11
9
  # @return [void]
12
10
  def call
13
- Nanoc::CLI::ErrorHandler.handle_while(:command => self) do
11
+ Nanoc::CLI::ErrorHandler.handle_while(command: self) do
14
12
  run
15
13
  end
16
14
  end
@@ -104,10 +102,8 @@ module Nanoc::CLI
104
102
  def stack
105
103
  (site && site.compiler.stack) || []
106
104
  end
107
-
108
105
  end
109
106
 
110
107
  # @deprecated Use {Nanoc::CLI::CommandRunner} instead
111
108
  Command = CommandRunner
112
-
113
109
  end
@@ -24,9 +24,7 @@ required :o, :host, 'specify the host to listen on (default: 0.0.0.0)'
24
24
  required :p, :port, 'specify the port to listen on (default: 3000)'
25
25
 
26
26
  module Nanoc::CLI::Commands
27
-
28
27
  class AutoCompile < ::Nanoc::CLI::CommandRunner
29
-
30
28
  def run
31
29
  warn 'WARNING: The `autocompile` command is deprecated. Please consider using `guard-nanoc` instead (see https://github.com/nanoc/guard-nanoc).'
32
30
 
@@ -38,8 +36,8 @@ module Nanoc::CLI::Commands
38
36
 
39
37
  # Set options
40
38
  options_for_rack = {
41
- :Port => (options[:port] || autocompile_config[:port] || 3000).to_i,
42
- :Host => (options[:host] || autocompile_config[:host] || '0.0.0.0')
39
+ Port: (options[:port] || autocompile_config[:port] || 3000).to_i,
40
+ Host: (options[:host] || autocompile_config[:host] || '0.0.0.0')
43
41
  }
44
42
 
45
43
  # Guess which handler we should use
@@ -65,9 +63,7 @@ module Nanoc::CLI::Commands
65
63
  puts "Running on http://#{options_for_rack[:Host]}:#{options_for_rack[:Port]}/"
66
64
  handler.run(app, options_for_rack)
67
65
  end
68
-
69
66
  end
70
-
71
67
  end
72
68
 
73
69
  runner Nanoc::CLI::Commands::AutoCompile
@@ -11,9 +11,7 @@ flag :L, :list, 'list all checks'
11
11
  flag :d, :deploy, 'run checks for deployment'
12
12
 
13
13
  module Nanoc::CLI::Commands
14
-
15
14
  class Check < ::Nanoc::CLI::CommandRunner
16
-
17
15
  def run
18
16
  validate_options_and_arguments
19
17
  require_site
@@ -47,9 +45,7 @@ module Nanoc::CLI::Commands
47
45
  'nothing to do (pass either --all, --deploy or --list or a list of checks)'
48
46
  end
49
47
  end
50
-
51
48
  end
52
-
53
49
  end
54
50
 
55
51
  runner Nanoc::CLI::Commands::Check
@@ -21,9 +21,7 @@ option :a, :all, '(ignored)'
21
21
  option :f, :force, '(ignored)'
22
22
 
23
23
  module Nanoc::CLI::Commands
24
-
25
24
  class Compile < ::Nanoc::CLI::CommandRunner
26
-
27
25
  extend Nanoc::Memoization
28
26
 
29
27
  # Listens to compilation events and reacts to them. This abstract class
@@ -32,7 +30,6 @@ module Nanoc::CLI::Commands
32
30
  #
33
31
  # @abstract Subclasses must override {#start} and may override {#stop}.
34
32
  class Listener
35
-
36
33
  def initialize(_params = {})
37
34
  end
38
35
 
@@ -41,7 +38,7 @@ module Nanoc::CLI::Commands
41
38
  # @return [Boolean] true if this listener should be enabled for the given command runner, false otherwise
42
39
  #
43
40
  # @abstract Returns `true` by default, but subclasses may override this.
44
- def self.enable_for?(_command_runner)
41
+ def self.enable_for?(command_runner) # rubocop:disable Lint/UnusedMethodArgument
45
42
  true
46
43
  end
47
44
 
@@ -59,12 +56,10 @@ module Nanoc::CLI::Commands
59
56
  # @return [void]
60
57
  def stop
61
58
  end
62
-
63
59
  end
64
60
 
65
61
  # Generates diffs for every output file written
66
62
  class DiffGenerator < Listener
67
-
68
63
  # @see Listener#enable_for?
69
64
  def self.enable_for?(command_runner)
70
65
  command_runner.site.config[:enable_output_diff]
@@ -76,7 +71,7 @@ module Nanoc::CLI::Commands
76
71
  setup_diffs
77
72
  old_contents = {}
78
73
  Nanoc::NotificationCenter.on(:will_write_rep) do |rep, snapshot|
79
- path = rep.raw_path(:snapshot => snapshot)
74
+ path = rep.raw_path(snapshot: snapshot)
80
75
  old_contents[rep] = File.file?(path) ? File.read(path) : nil
81
76
  end
82
77
  Nanoc::NotificationCenter.on(:rep_written) do |rep, path, _is_created, _is_modified|
@@ -105,7 +100,7 @@ module Nanoc::CLI::Commands
105
100
  end
106
101
 
107
102
  def teardown_diffs
108
- @diff_threads.each { |t| t.join }
103
+ @diff_threads.each(&:join)
109
104
  end
110
105
 
111
106
  def generate_diff_for(rep, old_content, new_content)
@@ -149,12 +144,10 @@ module Nanoc::CLI::Commands
149
144
  'content will be available.'
150
145
  nil
151
146
  end
152
-
153
147
  end
154
148
 
155
149
  # Records the time spent per filter and per item representation
156
150
  class TimingRecorder < Listener
157
-
158
151
  # @see Listener#enable_for?
159
152
  def self.enable_for?(command_runner)
160
153
  command_runner.options.fetch(:verbose, false)
@@ -171,7 +164,7 @@ module Nanoc::CLI::Commands
171
164
  def start
172
165
  Nanoc::NotificationCenter.on(:filtering_started) do |_rep, filter_name|
173
166
  @times[filter_name] ||= []
174
- @times[filter_name] << { :start => Time.now }
167
+ @times[filter_name] << { start: Time.now }
175
168
  end
176
169
  Nanoc::NotificationCenter.on(:filtering_ended) do |_rep, filter_name|
177
170
  @times[filter_name].last[:stop] = Time.now
@@ -215,7 +208,7 @@ module Nanoc::CLI::Commands
215
208
  # Calculate stats
216
209
  count = samples.size
217
210
  min = samples.min
218
- tot = samples.reduce(0) { |memo, i| memo + i }
211
+ tot = samples.reduce(0) { |a, e| a + e }
219
212
  avg = tot / count
220
213
  max = samples.max
221
214
 
@@ -253,12 +246,10 @@ module Nanoc::CLI::Commands
253
246
  end
254
247
  result
255
248
  end
256
-
257
249
  end
258
250
 
259
251
  # Controls garbage collection so that it only occurs once every 20 items
260
252
  class GCController < Listener
261
-
262
253
  # @see Listener#enable_for?
263
254
  def self.enable_for?(_command_runner)
264
255
  !ENV.key?('TRAVIS')
@@ -285,12 +276,10 @@ module Nanoc::CLI::Commands
285
276
  super
286
277
  GC.enable
287
278
  end
288
-
289
279
  end
290
280
 
291
281
  # Prints debug information (compilation started/ended, filtering started/ended, …)
292
282
  class DebugPrinter < Listener
293
-
294
283
  # @see Listener#enable_for?
295
284
  def self.enable_for?(command_runner)
296
285
  command_runner.debug?
@@ -327,12 +316,10 @@ module Nanoc::CLI::Commands
327
316
  puts "*** Dependency created from #{src.inspect} onto #{dst.inspect}"
328
317
  end
329
318
  end
330
-
331
319
  end
332
320
 
333
321
  # Prints file actions (created, updated, deleted, identical, skipped)
334
322
  class FileActionPrinter < Listener
335
-
336
323
  # @option params [Array<Nanoc::ItemRep>] :reps The list of item representations in the site
337
324
  def initialize(params = {})
338
325
  @start_times = {}
@@ -378,7 +365,6 @@ module Nanoc::CLI::Commands
378
365
  def log(level, action, path, duration)
379
366
  Nanoc::CLI::Logger.instance.file(level, action, path, duration)
380
367
  end
381
-
382
368
  end
383
369
 
384
370
  def initialize(options, arguments, command, params = {})
@@ -407,7 +393,7 @@ module Nanoc::CLI::Commands
407
393
 
408
394
  def prune
409
395
  if site.config[:prune][:auto_prune]
410
- Nanoc::Extra::Pruner.new(site, :exclude => prune_config_exclude).run
396
+ Nanoc::Extra::Pruner.new(site, exclude: prune_config_exclude).run
411
397
  end
412
398
  end
413
399
 
@@ -422,11 +408,12 @@ module Nanoc::CLI::Commands
422
408
  end
423
409
 
424
410
  def setup_listeners
425
- @listeners = @listener_classes
411
+ @listeners =
412
+ @listener_classes
426
413
  .select { |klass| klass.enable_for?(self) }
427
- .map { |klass| klass.new(:reps => reps) }
414
+ .map { |klass| klass.new(reps: reps) }
428
415
 
429
- @listeners.each { |s| s.start }
416
+ @listeners.each(&:start)
430
417
  end
431
418
 
432
419
  def listeners
@@ -441,11 +428,11 @@ module Nanoc::CLI::Commands
441
428
  end
442
429
 
443
430
  def teardown_listeners
444
- @listeners.each { |s| s.stop }
431
+ @listeners.each(&:stop)
445
432
  end
446
433
 
447
434
  def reps
448
- site.items.map { |i| i.reps }.flatten
435
+ site.items.map(&:reps).flatten
449
436
  end
450
437
  memoize :reps
451
438
 
@@ -470,9 +457,7 @@ module Nanoc::CLI::Commands
470
457
  def prune_config_exclude
471
458
  prune_config[:exclude] || {}
472
459
  end
473
-
474
460
  end
475
-
476
461
  end
477
462
 
478
463
  runner Nanoc::CLI::Commands::Compile
@@ -11,9 +11,7 @@ EOS
11
11
  required :c, :vcs, 'specify the VCS to use'
12
12
 
13
13
  module Nanoc::CLI::Commands
14
-
15
14
  class CreateItem < ::Nanoc::CLI::CommandRunner
16
-
17
15
  def run
18
16
  # Check arguments
19
17
  if arguments.length != 1
@@ -45,15 +43,13 @@ module Nanoc::CLI::Commands
45
43
  data_source = site.data_sources[0]
46
44
  data_source.create_item(
47
45
  "Hi, I'm a new item!\n",
48
- { :title => 'A New Item' },
46
+ { title: 'A New Item' },
49
47
  identifier
50
48
  )
51
49
 
52
50
  puts "An item has been created at #{identifier}."
53
51
  end
54
-
55
52
  end
56
-
57
53
  end
58
54
 
59
55
  runner Nanoc::CLI::Commands::CreateItem
@@ -9,9 +9,7 @@ configuration will be used.
9
9
  EOS
10
10
 
11
11
  module Nanoc::CLI::Commands
12
-
13
12
  class CreateLayout < ::Nanoc::CLI::CommandRunner
14
-
15
13
  def run
16
14
  # Check arguments
17
15
  if arguments.length != 1
@@ -64,9 +62,7 @@ module Nanoc::CLI::Commands
64
62
 
65
63
  puts "A layout has been created at #{identifier}."
66
64
  end
67
-
68
65
  end
69
-
70
66
  end
71
67
 
72
68
  runner Nanoc::CLI::Commands::CreateLayout
@@ -10,18 +10,14 @@ Create a new site at the given path. The site will use the `filesystem_unified`
10
10
  required :d, :datasource, 'specify the data source for the new site'
11
11
 
12
12
  module Nanoc::CLI::Commands
13
-
14
13
  class CreateSite < ::Nanoc::CLI::CommandRunner
15
-
16
14
  class << self
17
-
18
15
  protected
19
16
 
20
17
  # Converts the given array to YAML format
21
18
  def array_to_yaml(array)
22
19
  '[ ' + array.map { |s| "'" + s + "'" }.join(', ') + ' ]'
23
20
  end
24
-
25
21
  end
26
22
 
27
23
  DEFAULT_CONFIG = <<EOS unless defined? DEFAULT_CONFIG
@@ -370,7 +366,7 @@ EOS
370
366
  # Create home page
371
367
  data_source.create_item(
372
368
  DEFAULT_ITEM,
373
- { :title => 'Home' },
369
+ { title: 'Home' },
374
370
  '/'
375
371
  )
376
372
 
@@ -379,7 +375,7 @@ EOS
379
375
  DEFAULT_STYLESHEET,
380
376
  {},
381
377
  '/stylesheet/',
382
- :extension => '.css'
378
+ extension: '.css'
383
379
  )
384
380
 
385
381
  # Create layout
@@ -396,9 +392,7 @@ EOS
396
392
  io.write "\# before nanoc starts compiling.\n"
397
393
  end
398
394
  end
399
-
400
395
  end
401
-
402
396
  end
403
397
 
404
398
  runner Nanoc::CLI::Commands::CreateSite
@@ -6,23 +6,21 @@ description "
6
6
  Deploys the compiled site. The compiled site contents in the output directory will be uploaded to the destination, which is specified using the `--target` option.
7
7
  "
8
8
 
9
- option :t, :target, 'specify the location to deploy to (default: `default`)', :argument => :required
9
+ option :t, :target, 'specify the location to deploy to (default: `default`)', argument: :required
10
10
  flag :C, :'no-check', 'do not run the issue checks marked for deployment'
11
11
  flag :L, :list, 'list available locations to deploy to'
12
12
  flag :D, :'list-deployers', 'list available deployers'
13
13
  option :n, :'dry-run', 'show what would be deployed'
14
14
 
15
15
  module Nanoc::CLI::Commands
16
-
17
16
  class Deploy < ::Nanoc::CLI::CommandRunner
18
-
19
17
  def run
20
18
  load_site
21
19
 
22
20
  # List deployers
23
21
  if options[:'list-deployers']
24
22
  deployers = Nanoc::PluginRegistry.instance.find_all(Nanoc::Extra::Deployer)
25
- deployer_names = deployers.keys.sort_by { |k| k.to_s }
23
+ deployer_names = deployers.keys.sort_by(&:to_s)
26
24
  puts 'Available deployers:'
27
25
  deployer_names.each do |name|
28
26
  puts " #{name}"
@@ -85,12 +83,10 @@ module Nanoc::CLI::Commands
85
83
  deployer = deployer_class.new(
86
84
  site.config[:output_dir],
87
85
  config,
88
- :dry_run => options[:'dry-run'])
86
+ dry_run: options[:'dry-run'])
89
87
  deployer.run
90
88
  end
91
-
92
89
  end
93
-
94
90
  end
95
91
 
96
92
  runner Nanoc::CLI::Commands::Deploy
@@ -15,16 +15,14 @@ flag :y, :yes, 'confirm deletion'
15
15
  flag :n, :'dry-run', 'print files to be deleted instead of actually deleting them'
16
16
 
17
17
  module Nanoc::CLI::Commands
18
-
19
18
  class Prune < ::Nanoc::CLI::CommandRunner
20
-
21
19
  def run
22
20
  load_site
23
21
 
24
22
  if options.key?(:yes)
25
- Nanoc::Extra::Pruner.new(site, :exclude => prune_config_exclude).run
23
+ Nanoc::Extra::Pruner.new(site, exclude: prune_config_exclude).run
26
24
  elsif options.key?(:'dry-run')
27
- Nanoc::Extra::Pruner.new(site, :exclude => prune_config_exclude, :dry_run => true).run
25
+ Nanoc::Extra::Pruner.new(site, exclude: prune_config_exclude, dry_run: true).run
28
26
  else
29
27
  $stderr.puts 'WARNING: Since the prune command is a destructive command, it requires an additional --yes flag in order to work.'
30
28
  $stderr.puts
@@ -42,9 +40,7 @@ module Nanoc::CLI::Commands
42
40
  def prune_config_exclude
43
41
  prune_config[:exclude] || {}
44
42
  end
45
-
46
43
  end
47
-
48
44
  end
49
45
 
50
46
  runner Nanoc::CLI::Commands::Prune
@@ -8,9 +8,7 @@ Open an IRB shell on a context that contains @items, @layouts, @config and @site
8
8
  "
9
9
 
10
10
  module Nanoc::CLI::Commands
11
-
12
11
  class Shell < ::Nanoc::CLI::CommandRunner
13
-
14
12
  def run
15
13
  require 'pry'
16
14
 
@@ -23,15 +21,13 @@ module Nanoc::CLI::Commands
23
21
 
24
22
  def env
25
23
  {
26
- :site => site,
27
- :items => site.items,
28
- :layouts => site.layouts,
29
- :config => site.config
24
+ site: site,
25
+ items: site.items,
26
+ layouts: site.layouts,
27
+ config: site.config
30
28
  }
31
29
  end
32
-
33
30
  end
34
-
35
31
  end
36
32
 
37
33
  runner Nanoc::CLI::Commands::Shell