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
  class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
4
-
5
4
  def new_data_source(params = nil)
6
5
  # Mock site
7
6
  site = Nanoc::Site.new({})
@@ -42,22 +41,22 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
42
41
 
43
42
  # Check items
44
43
  assert_equal(2, items.size)
45
- assert(items.any? { |a|
44
+ assert(items.any? do |a|
46
45
  a[:title] == 'Foo' &&
47
46
  a[:extension] == 'html' &&
48
47
  a[:content_filename] == 'content/foo/foo.html' &&
49
48
  a[:meta_filename] == 'content/foo/foo.yaml'
50
- })
51
- assert(items.any? { |a|
49
+ end)
50
+ assert(items.any? do |a|
52
51
  a[:title] == 'Bar' &&
53
52
  a[:extension] == 'xml' &&
54
53
  a[:content_filename] == 'content/bar/bar.xml' &&
55
54
  a[:meta_filename] == 'content/bar/bar.yaml'
56
- })
55
+ end)
57
56
  end
58
57
 
59
58
  def test_items_with_period_in_name
60
- data_source = new_data_source(:allow_periods_in_identifiers => true)
59
+ data_source = new_data_source(allow_periods_in_identifiers: true)
61
60
 
62
61
  # Create foo.css
63
62
  FileUtils.mkdir_p('content/foo')
@@ -67,7 +66,7 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
67
66
  File.open('content/foo/foo.css', 'w') do |io|
68
67
  io.write('body.foo {}')
69
68
  end
70
-
69
+
71
70
  # Create foo.bar.css
72
71
  FileUtils.mkdir_p('content/foo.bar')
73
72
  File.open('content/foo.bar/foo.bar.yaml', 'w') do |io|
@@ -76,10 +75,10 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
76
75
  File.open('content/foo.bar/foo.bar.css', 'w') do |io|
77
76
  io.write('body.foobar {}')
78
77
  end
79
-
78
+
80
79
  # Load
81
80
  items = data_source.items.sort_by { |i| i[:title] }
82
-
81
+
83
82
  # Check
84
83
  assert_equal 2, items.size
85
84
  assert_equal '/foo/', items[0].identifier
@@ -114,18 +113,18 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
114
113
 
115
114
  # Check items
116
115
  assert_equal(2, items.size)
117
- assert(items.any? { |a|
118
- a[:title] == nil &&
119
- a[:extension] == 'html' &&
116
+ assert(items.any? do |a|
117
+ a[:title].nil? &&
118
+ a[:extension] == 'html' &&
120
119
  a[:content_filename] == 'content/foo/foo.html' &&
121
- a[:meta_filename] == nil
122
- })
123
- assert(items.any? { |a|
124
- a[:title] == 'Bar' &&
125
- a[:extension] == nil &&
126
- a[:content_filename] == nil &&
127
- a[:meta_filename] == 'content/bar/bar.yaml'
128
- })
120
+ a[:meta_filename].nil?
121
+ end)
122
+ assert(items.any? do |a|
123
+ a[:title] == 'Bar' &&
124
+ a[:extension].nil? &&
125
+ a[:content_filename].nil? &&
126
+ a[:meta_filename] == 'content/bar/bar.yaml'
127
+ end)
129
128
  end
130
129
 
131
130
  def test_layouts
@@ -164,7 +163,7 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
164
163
  File.open('layouts/foo/foo.html', 'w') do |io|
165
164
  io.write('body.foo {}')
166
165
  end
167
-
166
+
168
167
  # Create bar.html.erb
169
168
  FileUtils.mkdir_p('layouts/bar')
170
169
  File.open('layouts/bar/bar.yaml', 'w') do |io|
@@ -173,10 +172,10 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
173
172
  File.open('layouts/bar/bar.html.erb', 'w') do |io|
174
173
  io.write('body.foobar {}')
175
174
  end
176
-
175
+
177
176
  # Load
178
- layouts = data_source.layouts.sort_by { |i| i.identifier }
179
-
177
+ layouts = data_source.layouts.sort_by(&:identifier)
178
+
180
179
  # Check
181
180
  assert_equal 2, layouts.size
182
181
  assert_equal '/bar/', layouts[0].identifier
@@ -186,7 +185,7 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
186
185
  end
187
186
 
188
187
  def test_layouts_with_period_in_name_allowing_periods_in_identifiers
189
- data_source = new_data_source(:allow_periods_in_identifiers => true)
188
+ data_source = new_data_source(allow_periods_in_identifiers: true)
190
189
 
191
190
  # Create foo.html
192
191
  FileUtils.mkdir_p('layouts/foo')
@@ -196,7 +195,7 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
196
195
  File.open('layouts/foo/foo.html', 'w') do |io|
197
196
  io.write('body.foo {}')
198
197
  end
199
-
198
+
200
199
  # Create bar.html.erb
201
200
  FileUtils.mkdir_p('layouts/bar.xyz')
202
201
  File.open('layouts/bar.xyz/bar.xyz.yaml', 'w') do |io|
@@ -205,10 +204,10 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
205
204
  File.open('layouts/bar.xyz/bar.xyz.html', 'w') do |io|
206
205
  io.write('body.foobar {}')
207
206
  end
208
-
207
+
209
208
  # Load
210
- layouts = data_source.layouts.sort_by { |i| i.identifier }
211
-
209
+ layouts = data_source.layouts.sort_by(&:identifier)
210
+
212
211
  # Check
213
212
  assert_equal 2, layouts.size
214
213
  assert_equal '/bar.xyz/', layouts[0].identifier
@@ -220,7 +219,7 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
220
219
  def test_create_item_at_root
221
220
  # Create item
222
221
  data_source = new_data_source
223
- data_source.create_item('content here', { :foo => 'bar' }, '/')
222
+ data_source.create_item('content here', { foo: 'bar' }, '/')
224
223
 
225
224
  # Check file existance
226
225
  assert File.directory?('content')
@@ -235,7 +234,7 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
235
234
  def test_create_item_not_at_root
236
235
  # Create item
237
236
  data_source = new_data_source
238
- data_source.create_item('content here', { :foo => 'bar' }, '/moo/')
237
+ data_source.create_item('content here', { foo: 'bar' }, '/moo/')
239
238
 
240
239
  # Check file existance
241
240
  assert File.directory?('content/moo')
@@ -250,7 +249,7 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
250
249
  def test_create_layout
251
250
  # Create layout
252
251
  data_source = new_data_source
253
- data_source.create_layout('content here', { :foo => 'bar' }, '/moo/')
252
+ data_source.create_layout('content here', { foo: 'bar' }, '/moo/')
254
253
 
255
254
  # Check file existance
256
255
  assert File.directory?('layouts/moo')
@@ -351,5 +350,4 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
351
350
  data_source.items
352
351
  end
353
352
  end
354
-
355
353
  end
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::DataSources::StaticTest < Nanoc::TestCase
4
-
5
4
  def new_data_source(params = nil)
6
5
  # Mock site
7
6
  site = Nanoc::Site.new({})
@@ -17,7 +16,7 @@ class Nanoc::DataSources::StaticTest < Nanoc::TestCase
17
16
  skip_unless_symlinks_supported
18
17
 
19
18
  # Create data source
20
- data_source = new_data_source(:prefix => 'foo')
19
+ data_source = new_data_source(prefix: 'foo')
21
20
 
22
21
  # Create sample files
23
22
  FileUtils.mkdir_p('foo')
@@ -33,19 +32,19 @@ class Nanoc::DataSources::StaticTest < Nanoc::TestCase
33
32
 
34
33
  # Check all files
35
34
  expected_filenames = ['foo/a.png', 'foo/1/b.png', 'foo/c.png'].sort
36
- actual_filenames = Nanoc::Extra::FilesystemTools.all_files_in('foo').sort
35
+ actual_filenames = Nanoc::Extra::FilesystemTools.all_files_in('foo', nil).sort
37
36
  assert_equal expected_filenames, actual_filenames
38
37
 
39
38
  # Check items
40
- items = data_source.send(:items).sort_by { |i| i.identifier }
41
- actual_item_identifiers = items.map { |i| i.identifier }.sort
39
+ items = data_source.send(:items).sort_by(&:identifier)
40
+ actual_item_identifiers = items.map(&:identifier).sort
42
41
  expected_item_identifiers = %w( /a.png/ /1/b.png/ /c.png/ ).sort
43
42
  assert_equal expected_item_identifiers, actual_item_identifiers
44
43
  end
45
44
 
46
45
  def test_items
47
46
  # Create data source
48
- data_source = new_data_source(:prefix => 'foo')
47
+ data_source = new_data_source(prefix: 'foo')
49
48
 
50
49
  # Create sample files
51
50
  FileUtils.mkdir_p('foo')
@@ -58,33 +57,33 @@ class Nanoc::DataSources::StaticTest < Nanoc::TestCase
58
57
  expected_out = [
59
58
  Nanoc::Item.new(
60
59
  'foo/bar.png',
61
- { :extension => 'png', :filename => 'foo/bar.png' },
60
+ { extension: 'png', filename: 'foo/bar.png' },
62
61
  '/bar.png/',
63
- :binary => true,
64
- :mtime => File.mtime('foo/bar.png'),
65
- :checksum => Pathname.new('foo/bar.png').checksum
62
+ binary: true,
63
+ mtime: File.mtime('foo/bar.png'),
64
+ checksum: Pathname.new('foo/bar.png').checksum
66
65
  ),
67
66
  Nanoc::Item.new(
68
67
  'foo/b.c.css',
69
- { :extension => 'css', :filename => 'foo/b.c.css' },
68
+ { extension: 'css', filename: 'foo/b.c.css' },
70
69
  '/b.c.css/',
71
- :binary => true,
72
- :mtime => File.mtime('foo/b.c.css'),
73
- :checksum => Pathname.new('foo/b.c.css').checksum
70
+ binary: true,
71
+ mtime: File.mtime('foo/b.c.css'),
72
+ checksum: Pathname.new('foo/b.c.css').checksum
74
73
  ),
75
74
  Nanoc::Item.new(
76
75
  'foo/a/b/c.gif',
77
- { :extension => 'gif', :filename => 'foo/a/b/c.gif' },
76
+ { extension: 'gif', filename: 'foo/a/b/c.gif' },
78
77
  '/a/b/c.gif/',
79
- :binary => true,
80
- :mtime => File.mtime('foo/a/b/c.gif'),
81
- :checksum => Pathname.new('foo/a/b/c.gif').checksum
78
+ binary: true,
79
+ mtime: File.mtime('foo/a/b/c.gif'),
80
+ checksum: Pathname.new('foo/a/b/c.gif').checksum
82
81
  )
83
- ].sort_by { |i| i.identifier }
82
+ ].sort_by(&:identifier)
84
83
 
85
- actual_out = data_source.send(:items).sort_by { |i| i.identifier }
84
+ actual_out = data_source.send(:items).sort_by(&:identifier)
86
85
 
87
- (0..expected_out.size-1).each do |i|
86
+ (0..expected_out.size - 1).each do |i|
88
87
  assert_equal expected_out[i].raw_content, actual_out[i].raw_content, 'content must match'
89
88
  assert_equal expected_out[i].identifier, actual_out[i].identifier, 'identifier must match'
90
89
  assert_equal expected_out[i].mtime, actual_out[i].mtime, 'mtime must match'
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::Checking::Checks::CSSTest < Nanoc::TestCase
4
-
5
4
  def test_run_ok
6
5
  VCR.use_cassette('css_run_ok') do
7
6
  with_site do |site|
@@ -34,9 +33,31 @@ class Nanoc::Extra::Checking::Checks::CSSTest < Nanoc::TestCase
34
33
 
35
34
  # Check
36
35
  refute check.issues.empty?
36
+ assert_equal 1, check.issues.size
37
+ assert_equal 'line 1: Property coxlor doesn\'t exist: h1 { coxlor: rxed; }',
38
+ check.issues.to_a[0].description
37
39
  end
38
40
  end
39
41
  end
40
42
 
41
- end
43
+ def test_run_parse_error
44
+ VCR.use_cassette('css_run_parse_error') do
45
+ with_site do |site|
46
+ # Create files
47
+ FileUtils.mkdir_p('output')
48
+ File.open('output/blah.html', 'w') { |io| io.write('<h1>Hi!</h1>') }
49
+ File.open('output/style.css', 'w') { |io| io.write('h1 { ; {') }
50
+
51
+ # Run check
52
+ check = Nanoc::Extra::Checking::Checks::CSS.new(site)
53
+ check.run
42
54
 
55
+ # Check
56
+ refute check.issues.empty?
57
+ assert_equal 1, check.issues.size
58
+ assert_equal 'line 1: Parse Error: h1 { ; {',
59
+ check.issues.to_a[0].description
60
+ end
61
+ end
62
+ end
63
+ end
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::Checking::Checks::ExternalLinksTest < Nanoc::TestCase
4
-
5
4
  def test_run
6
5
  with_site do |site|
7
6
  # Create files
@@ -52,13 +51,13 @@ class Nanoc::Extra::Checking::Checks::ExternalLinksTest < Nanoc::TestCase
52
51
 
53
52
  def test_fallback_to_get_when_head_is_not_allowed
54
53
  with_site do |site|
55
- #Create check
54
+ # Create check
56
55
  check = Nanoc::Extra::Checking::Checks::ExternalLinks.new(site)
57
56
  def check.request_url_once(url, req_method = Net::HTTP::Head)
58
57
  Net::HTTPResponse.new('1.1', (req_method == Net::HTTP::Head || url.path == '/405') ? '405' : '200', 'okay')
59
58
  end
60
59
 
61
- #Test
60
+ # Test
62
61
  assert_nil check.validate('http://127.0.0.1:9204')
63
62
  refute_nil check.validate('http://127.0.0.1:9204/405')
64
63
  end
@@ -75,5 +74,4 @@ class Nanoc::Extra::Checking::Checks::ExternalLinksTest < Nanoc::TestCase
75
74
  assert_equal '/meow?foo=bar', check.send(:path_for_url, URI.parse('http://example.com/meow?foo=bar'))
76
75
  end
77
76
  end
78
-
79
77
  end
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::Checking::Checks::HTMLTest < Nanoc::TestCase
4
-
5
4
  def test_run_ok
6
5
  VCR.use_cassette('html_run_ok') do
7
6
  with_site do |site|
@@ -34,9 +33,11 @@ class Nanoc::Extra::Checking::Checks::HTMLTest < Nanoc::TestCase
34
33
 
35
34
  # Check
36
35
  refute check.issues.empty?
36
+ assert_equal 2, check.issues.size
37
+ assert_equal 'line 1: no document type declaration; will parse without validation: <h2>Hi!</h1>', check.issues.to_a[0].description
38
+ assert_equal 'line 1: end tag for element "H1" which is not open: <h2>Hi!</h1>', check.issues.to_a[1].description
39
+ check.issues.to_a[0].description
37
40
  end
38
41
  end
39
42
  end
40
-
41
43
  end
42
-
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::Checking::Checks::InternalLinksTest < Nanoc::TestCase
4
-
5
4
  def test_run
6
5
  with_site do |site|
7
6
  # Create files
@@ -57,7 +56,7 @@ class Nanoc::Extra::Checking::Checks::InternalLinksTest < Nanoc::TestCase
57
56
  with_site do |site|
58
57
  # Create check
59
58
  check = Nanoc::Extra::Checking::Checks::InternalLinks.new(site)
60
- site.config.update({ :checks => { :internal_links => { :exclude => ['^/excluded\d+'] } } })
59
+ site.config.update({ checks: { internal_links: { exclude: ['^/excluded\d+'] } } })
61
60
 
62
61
  # Test
63
62
  assert check.send(:valid?, '/excluded1', 'output/origin')
@@ -77,5 +76,4 @@ class Nanoc::Extra::Checking::Checks::InternalLinksTest < Nanoc::TestCase
77
76
  refute check.send(:valid?, 'stuff/wrong%20foo', 'output/origin')
78
77
  end
79
78
  end
80
-
81
79
  end
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::Checking::Checks::StaleTest < Nanoc::TestCase
4
-
5
4
  def check_class
6
5
  Nanoc::Extra::Checking::Checks::Stale
7
6
  end
@@ -14,7 +13,7 @@ class Nanoc::Extra::Checking::Checks::StaleTest < Nanoc::TestCase
14
13
  end
15
14
 
16
15
  def test_run_ok
17
- with_site do |site|
16
+ with_site do |_site|
18
17
  assert Dir['content/*'].empty?
19
18
  assert Dir['output/*'].empty?
20
19
 
@@ -30,7 +29,7 @@ class Nanoc::Extra::Checking::Checks::StaleTest < Nanoc::TestCase
30
29
  end
31
30
 
32
31
  def test_run_error
33
- with_site do |site|
32
+ with_site do |_site|
34
33
  assert Dir['content/*'].empty?
35
34
  assert Dir['output/*'].empty?
36
35
 
@@ -44,7 +43,7 @@ class Nanoc::Extra::Checking::Checks::StaleTest < Nanoc::TestCase
44
43
  end
45
44
 
46
45
  def test_run_excluded
47
- with_site do |site|
46
+ with_site do |_site|
48
47
  assert Dir['content/*'].empty?
49
48
  assert Dir['output/*'].empty?
50
49
 
@@ -56,7 +55,7 @@ class Nanoc::Extra::Checking::Checks::StaleTest < Nanoc::TestCase
56
55
  end
57
56
 
58
57
  def test_run_excluded_with_broken_config
59
- with_site do |site|
58
+ with_site do |_site|
60
59
  assert Dir['content/*'].empty?
61
60
  assert Dir['output/*'].empty?
62
61
 
@@ -66,5 +65,4 @@ class Nanoc::Extra::Checking::Checks::StaleTest < Nanoc::TestCase
66
65
  refute calc_issues.empty?
67
66
  end
68
67
  end
69
-
70
68
  end
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::Checking::CheckTest < Nanoc::TestCase
4
-
5
4
  def test_output_filenames
6
5
  with_site do |site|
7
6
  check = Nanoc::Extra::Checking::Check.new(site)
@@ -20,5 +19,4 @@ class Nanoc::Extra::Checking::CheckTest < Nanoc::TestCase
20
19
  end
21
20
  end
22
21
  end
23
-
24
22
  end
@@ -1,9 +1,8 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::Checking::DSLTest < Nanoc::TestCase
4
-
5
4
  def test_from_file
6
- with_site do |site|
5
+ with_site do |_site|
7
6
  File.open('Checks', 'w') { |io| io.write("check :foo do\n\nend\ndeploy_check :bar\n") }
8
7
  dsl = Nanoc::Extra::Checking::DSL.from_file('Checks')
9
8
 
@@ -14,5 +13,4 @@ class Nanoc::Extra::Checking::DSLTest < Nanoc::TestCase
14
13
  assert_equal [:bar], dsl.deploy_checks
15
14
  end
16
15
  end
17
-
18
16
  end