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,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Nanoc::Extra::Checking::Checks
4
-
5
4
  autoload 'CSS', 'nanoc/extra/checking/checks/css'
6
5
  autoload 'ExternalLinks', 'nanoc/extra/checking/checks/external_links'
7
6
  autoload 'HTML', 'nanoc/extra/checking/checks/html'
@@ -15,5 +14,4 @@ module Nanoc::Extra::Checking::Checks
15
14
  Nanoc::Extra::Checking::Check.register '::Nanoc::Extra::Checking::Checks::InternalLinks', :internal_links
16
15
  Nanoc::Extra::Checking::Check.register '::Nanoc::Extra::Checking::Checks::InternalLinks', :ilinks
17
16
  Nanoc::Extra::Checking::Check.register '::Nanoc::Extra::Checking::Checks::Stale', :stale
18
-
19
17
  end
@@ -1,9 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module ::Nanoc::Extra::Checking::Checks
4
-
5
4
  class CSS < ::Nanoc::Extra::Checking::Check
6
-
7
5
  identifier :css
8
6
 
9
7
  def run
@@ -11,13 +9,15 @@ module ::Nanoc::Extra::Checking::Checks
11
9
 
12
10
  Dir[site.config[:output_dir] + '/**/*.css'].each do |filename|
13
11
  results = ::W3CValidators::CSSValidator.new.validate_file(filename)
12
+ lines = File.readlines(filename)
14
13
  results.errors.each do |e|
15
- desc = e.message.gsub(%r{\s+}, ' ').strip
16
- add_issue(desc, :subject => filename)
14
+ line_num = e.line.to_i - 1
15
+ line = lines[line_num]
16
+ message = e.message.gsub(%r{\s+}, ' ').strip.sub(/\s+:$/, '')
17
+ desc = "line #{line_num + 1}: #{message}: #{line}"
18
+ add_issue(desc, subject: filename)
17
19
  end
18
20
  end
19
21
  end
20
-
21
22
  end
22
-
23
23
  end
@@ -7,15 +7,13 @@ require 'timeout'
7
7
  require 'uri'
8
8
 
9
9
  module ::Nanoc::Extra::Checking::Checks
10
-
11
10
  # A validator that verifies that all external links point to a location that exists.
12
11
  class ExternalLinks < ::Nanoc::Extra::Checking::Check
13
-
14
12
  identifiers :external_links, :elinks
15
13
 
16
14
  def run
17
15
  # Find all broken external hrefs
18
- # TODO de-duplicate this (duplicated in internal links check)
16
+ # TODO: de-duplicate this (duplicated in internal links check)
19
17
  filenames = output_filenames.select { |f| File.extname(f) == '.html' }
20
18
  hrefs_with_filenames = ::Nanoc::Extra::LinkCollector.new(filenames, :external).filenames_per_href
21
19
  results = select_invalid(hrefs_with_filenames.keys)
@@ -26,13 +24,12 @@ module ::Nanoc::Extra::Checking::Checks
26
24
  filenames.each do |filename|
27
25
  add_issue(
28
26
  "broken reference to #{res.href}: #{res.explanation}",
29
- :subject => filename)
27
+ subject: filename)
30
28
  end
31
29
  end
32
30
  end
33
31
 
34
32
  class Result
35
-
36
33
  attr_reader :href
37
34
  attr_reader :explanation
38
35
 
@@ -40,11 +37,9 @@ module ::Nanoc::Extra::Checking::Checks
40
37
  @href = href
41
38
  @explanation = explanation
42
39
  end
43
-
44
40
  end
45
41
 
46
42
  class ArrayEnumerator
47
-
48
43
  def initialize(array)
49
44
  @array = array
50
45
  @index = 0
@@ -57,7 +52,6 @@ module ::Nanoc::Extra::Checking::Checks
57
52
  return @array[@index - 1]
58
53
  end
59
54
  end
60
-
61
55
  end
62
56
 
63
57
  def select_invalid(hrefs)
@@ -81,7 +75,7 @@ module ::Nanoc::Extra::Checking::Checks
81
75
  end
82
76
  end
83
77
  end
84
- threads.each { |t| t.join }
78
+ threads.each(&:join)
85
79
 
86
80
  invalid
87
81
  end
@@ -167,7 +161,5 @@ module ::Nanoc::Extra::Checking::Checks
167
161
  end
168
162
  http.request(req)
169
163
  end
170
-
171
164
  end
172
-
173
165
  end
@@ -1,9 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module ::Nanoc::Extra::Checking::Checks
4
-
5
4
  class HTML < ::Nanoc::Extra::Checking::Check
6
-
7
5
  identifier :html
8
6
 
9
7
  def run
@@ -11,13 +9,15 @@ module ::Nanoc::Extra::Checking::Checks
11
9
 
12
10
  Dir[site.config[:output_dir] + '/**/*.{htm,html}'].each do |filename|
13
11
  results = ::W3CValidators::MarkupValidator.new.validate_file(filename)
12
+ lines = File.readlines(filename)
14
13
  results.errors.each do |e|
15
- desc = e.message.gsub(%r{\s+}, ' ').strip
16
- add_issue(desc, :subject => filename)
14
+ line_num = e.line.to_i - 1
15
+ line = lines[line_num]
16
+ message = e.message.gsub(%r{\s+}, ' ').strip.sub(/\s+:$/, '')
17
+ desc = "line #{line_num + 1}: #{message}: #{line}"
18
+ add_issue(desc, subject: filename)
17
19
  end
18
20
  end
19
21
  end
20
-
21
22
  end
22
-
23
23
  end
@@ -3,10 +3,8 @@
3
3
  require 'uri'
4
4
 
5
5
  module Nanoc::Extra::Checking::Checks
6
-
7
6
  # A check that verifies that all internal links point to a location that exists.
8
7
  class InternalLinks < ::Nanoc::Extra::Checking::Check
9
-
10
8
  # Starts the validator. The results will be printed to stdout.
11
9
  #
12
10
  # Internal links that match a regexp pattern in `@config[:checks][:internal_links][:exclude]` will
@@ -14,7 +12,7 @@ module Nanoc::Extra::Checking::Checks
14
12
  #
15
13
  # @return [void]
16
14
  def run
17
- # TODO de-duplicate this (duplicated in external links check)
15
+ # TODO: de-duplicate this (duplicated in external links check)
18
16
  filenames = output_filenames.select { |f| File.extname(f) == '.html' }
19
17
  hrefs_with_filenames = ::Nanoc::Extra::LinkCollector.new(filenames, :internal).filenames_per_href
20
18
  hrefs_with_filenames.each_pair do |href, fns|
@@ -23,7 +21,7 @@ module Nanoc::Extra::Checking::Checks
23
21
 
24
22
  add_issue(
25
23
  "broken reference to #{href}",
26
- :subject => filename)
24
+ subject: filename)
27
25
  end
28
26
  end
29
27
  end
@@ -32,7 +30,7 @@ module Nanoc::Extra::Checking::Checks
32
30
 
33
31
  def valid?(href, origin)
34
32
  # Skip hrefs that point to self
35
- # FIXME this is ugly and won’t always be correct
33
+ # FIXME: this is ugly and won’t always be correct
36
34
  return true if href == '.'
37
35
 
38
36
  # Skip hrefs that are specified in the exclude configuration
@@ -70,7 +68,5 @@ module Nanoc::Extra::Checking::Checks
70
68
  excludes = @site.config.fetch(:checks, {}).fetch(:internal_links, {}).fetch(:exclude, [])
71
69
  excludes.any? { |pattern| Regexp.new(pattern).match(href) }
72
70
  end
73
-
74
71
  end
75
-
76
72
  end
@@ -1,13 +1,11 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Nanoc::Extra::Checking::Checks
4
-
5
4
  class Stale < ::Nanoc::Extra::Checking::Check
6
-
7
5
  def run
8
6
  require 'set'
9
7
 
10
- item_rep_paths = Set.new(@site.items.map { |i| i.reps }.flatten.map { |r| r.raw_path })
8
+ item_rep_paths = Set.new(@site.items.map(&:reps).flatten.map(&:raw_path))
11
9
 
12
10
  output_filenames.each do |f|
13
11
  next if pruner.filename_excluded?(f)
@@ -15,7 +13,7 @@ module Nanoc::Extra::Checking::Checks
15
13
 
16
14
  add_issue(
17
15
  'file without matching item',
18
- :subject => f)
16
+ subject: f)
19
17
  end
20
18
  end
21
19
 
@@ -23,9 +21,7 @@ module Nanoc::Extra::Checking::Checks
23
21
 
24
22
  def pruner
25
23
  exclude_config = @site.config.fetch(:prune, {}).fetch(:exclude, [])
26
- @pruner ||= Nanoc::Extra::Pruner.new(@site, :exclude => exclude_config)
24
+ @pruner ||= Nanoc::Extra::Pruner.new(@site, exclude: exclude_config)
27
25
  end
28
-
29
26
  end
30
-
31
27
  end
@@ -1,9 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Nanoc::Extra::Checking
4
-
5
4
  class DSL
6
-
7
5
  attr_reader :deploy_checks
8
6
 
9
7
  def self.from_file(filename)
@@ -25,7 +23,5 @@ module Nanoc::Extra::Checking
25
23
  def deploy_check(*identifiers)
26
24
  identifiers.each { |i| @deploy_checks << i }
27
25
  end
28
-
29
26
  end
30
-
31
27
  end
@@ -1,9 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Nanoc::Extra::Checking
4
-
5
4
  class Issue
6
-
7
5
  attr_reader :description
8
6
  attr_reader :subject
9
7
  attr_reader :check_class
@@ -13,7 +11,5 @@ module Nanoc::Extra::Checking
13
11
  @subject = subject
14
12
  @check_class = check_class
15
13
  end
16
-
17
14
  end
18
-
19
15
  end
@@ -1,12 +1,10 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Nanoc::Extra::Checking
4
-
5
4
  # Runner is reponsible for running issue checks.
6
5
  #
7
6
  # @api private
8
7
  class Runner
9
-
10
8
  CHECKS_FILENAMES = ['Checks', 'Checks.rb', 'checks', 'checks.rb']
11
9
 
12
10
  # @param [Nanoc::Site] site The nanoc site this runner is for
@@ -14,7 +12,7 @@ module Nanoc::Extra::Checking
14
12
  @site = site
15
13
  end
16
14
 
17
- # @param [String] The name of the Checks file
15
+ # @return [String] The name of the Checks file
18
16
  def checks_filename
19
17
  @_checks_filename ||= CHECKS_FILENAMES.find { |f| File.file?(f) }
20
18
  end
@@ -98,7 +96,7 @@ module Nanoc::Extra::Checking
98
96
  end
99
97
 
100
98
  def all_check_classes
101
- Nanoc::Extra::Checking::Check.all.map { |p| p.last }.uniq
99
+ Nanoc::Extra::Checking::Check.all.map(&:last).uniq
102
100
  end
103
101
 
104
102
  def check_classes_named(n)
@@ -124,7 +122,7 @@ module Nanoc::Extra::Checking
124
122
  checks << check
125
123
  issues.merge(check.issues)
126
124
 
127
- # TODO report progress
125
+ # TODO: report progress
128
126
 
129
127
  puts check.issues.empty? ? 'ok'.green : 'error'.red
130
128
  end
@@ -136,7 +134,7 @@ module Nanoc::Extra::Checking
136
134
 
137
135
  return if issues.empty?
138
136
  puts 'Issues found!'
139
- issues.group_by { |i| i.subject }.to_a.sort_by { |p| p.first }.each do |pair|
137
+ issues.group_by(&:subject).to_a.sort_by(&:first).each do |pair|
140
138
  subject = pair.first
141
139
  issues = pair.last
142
140
  next if issues.empty?
@@ -148,5 +146,4 @@ module Nanoc::Extra::Checking
148
146
  end
149
147
  end
150
148
  end
151
-
152
149
  end
@@ -5,24 +5,21 @@ require 'rack'
5
5
  require 'rack/cache'
6
6
 
7
7
  module Nanoc::Extra
8
-
9
8
  # @deprecated Use a HTTP library such as
10
9
  # [Net::HTTP](http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/) or
11
10
  # [Curb](https://github.com/taf2/curb) instead.
12
11
  module CHiCk
13
-
14
12
  # @deprecated Use a HTTP library such as
15
13
  # [Net::HTTP](http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/) or
16
14
  # [Curb](https://github.com/taf2/curb) instead.
17
15
  class Client
18
-
19
16
  DEFAULT_OPTIONS = {
20
- :cache => {
21
- :metastore => 'file:tmp/rack/cache.meta',
22
- :entitystore => 'file:tmp/rack/cache.body'
17
+ cache: {
18
+ metastore: 'file:tmp/rack/cache.meta',
19
+ entitystore: 'file:tmp/rack/cache.body'
23
20
  },
24
- :cache_controller => {
25
- :max_age => 60
21
+ cache_controller: {
22
+ max_age: 60
26
23
  }
27
24
  }
28
25
 
@@ -37,13 +34,13 @@ module Nanoc::Extra
37
34
  # Build app
38
35
  options = @options
39
36
  @app ||= Rack::Builder.new do
40
- use Rack::Cache, options[:cache].merge(:verbose => true)
37
+ use Rack::Cache, options[:cache].merge(verbose: true)
41
38
  use Nanoc::Extra::CHiCk::CacheController, options[:cache_controller]
42
39
  run Nanoc::Extra::CHiCk::RackClient
43
40
  end
44
41
 
45
42
  # Build environment for request
46
- env = Rack::MockRequest.env_for(url, :method => 'GET')
43
+ env = Rack::MockRequest.env_for(url, method: 'GET')
47
44
 
48
45
  # Fetch
49
46
  puts "[CHiCk] Fetching #{url}..." if $DEBUG
@@ -57,14 +54,12 @@ module Nanoc::Extra
57
54
  # Done
58
55
  [status, headers, body]
59
56
  end
60
-
61
57
  end
62
58
 
63
59
  # @deprecated Use a HTTP library such as
64
60
  # [Net::HTTP](http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/) or
65
61
  # [Curb](https://github.com/taf2/curb) instead.
66
62
  class CacheController
67
-
68
63
  def initialize(app, options = {})
69
64
  @app = app
70
65
  @options = options
@@ -77,14 +72,12 @@ module Nanoc::Extra
77
72
  end
78
73
  res
79
74
  end
80
-
81
75
  end
82
76
 
83
77
  # @deprecated Use a HTTP library such as
84
78
  # [Net::HTTP](http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/) or
85
79
  # [Curb](https://github.com/taf2/curb) instead.
86
80
  class RackClient
87
-
88
81
  METHOD_TO_CLASS_MAPPING = {
89
82
  'DELETE' => Net::HTTP::Delete,
90
83
  'GET' => Net::HTTP::Get,
@@ -119,9 +112,6 @@ module Nanoc::Extra
119
112
  ]
120
113
  end
121
114
  end
122
-
123
115
  end
124
-
125
116
  end
126
-
127
117
  end
@@ -1,5 +1,4 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'nanoc/extra/core_ext/enumerable'
4
3
  require 'nanoc/extra/core_ext/pathname'
5
4
  require 'nanoc/extra/core_ext/time'
@@ -1,9 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Nanoc::Extra
4
-
5
4
  module PathnameExtensions
6
-
7
5
  def components
8
6
  components = []
9
7
  tmp = self
@@ -19,9 +17,7 @@ module Nanoc::Extra
19
17
  def include_component?(component)
20
18
  components.include?(component)
21
19
  end
22
-
23
20
  end
24
-
25
21
  end
26
22
 
27
23
  class ::Pathname
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Nanoc::Extra::TimeExtensions
4
-
5
4
  # @return [String] The time in an ISO-8601 date format.
6
5
  def to_iso8601_date
7
6
  strftime('%Y-%m-%d')
@@ -11,7 +10,6 @@ module Nanoc::Extra::TimeExtensions
11
10
  def to_iso8601_time
12
11
  getutc.strftime('%Y-%m-%dT%H:%M:%SZ')
13
12
  end
14
-
15
13
  end
16
14
 
17
15
  class Time
@@ -1,13 +1,11 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Nanoc::Extra
4
-
5
4
  # Represents a deployer, an object that allows uploading the compiled site
6
5
  # to a specific (remote) location.
7
6
  #
8
7
  # @abstract Subclass and override {#run} to implement a custom filter.
9
8
  class Deployer
10
-
11
9
  extend Nanoc::PluginRegistry::PluginMethods
12
10
 
13
11
  # @return [String] The path to the directory that contains the files to
@@ -41,7 +39,5 @@ module Nanoc::Extra
41
39
  def run
42
40
  raise NotImplementedError.new('Nanoc::Extra::Deployer subclasses must implement #run')
43
41
  end
44
-
45
42
  end
46
-
47
43
  end