nanoc 3.7.4 → 3.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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