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::Extra::Checking::RunnerTest < Nanoc::TestCase
4
-
5
4
  def test_run_specific
6
5
  with_site do |site|
7
6
  File.open('output/blah', 'w') { |io| io.write('I am stale! Haha!') }
@@ -41,5 +40,4 @@ class Nanoc::Extra::Checking::RunnerTest < Nanoc::TestCase
41
40
  assert ios[:stderr].empty?
42
41
  end
43
42
  end
44
-
45
43
  end
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::CoreExtPathnameTest < Nanoc::TestCase
4
-
5
4
  def test_components
6
5
  assert_equal %w( / a bb ccc dd e ), Pathname.new('/a/bb/ccc/dd/e').components
7
6
  end
@@ -10,6 +9,4 @@ class Nanoc::Extra::CoreExtPathnameTest < Nanoc::TestCase
10
9
  assert Pathname.new('/home/ddfreyne/').include_component?('ddfreyne')
11
10
  refute Pathname.new('/home/ddfreyne/').include_component?('acid')
12
11
  end
13
-
14
12
  end
15
-
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::ExtraCoreExtTimeTest < Nanoc::TestCase
4
-
5
4
  def test_to_iso8601_date
6
5
  assert_equal('2008-05-19', Time.utc(2008, 5, 19, 14, 20, 0, 0).to_iso8601_date)
7
6
  end
@@ -9,5 +8,4 @@ class Nanoc::ExtraCoreExtTimeTest < Nanoc::TestCase
9
8
  def test_to_iso8601_time
10
9
  assert_equal('2008-05-19T14:20:00Z', Time.utc(2008, 5, 19, 14, 20, 0, 0).to_iso8601_time)
11
10
  end
12
-
13
11
  end
@@ -1,16 +1,15 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::Deployers::FogTest < Nanoc::TestCase
4
-
5
4
  def test_run
6
5
  if_have 'fog' do
7
6
  # Create deployer
8
7
  fog = Nanoc::Extra::Deployers::Fog.new(
9
8
  'output/',
10
9
  {
11
- :bucket => 'mybucket',
12
- :provider => 'local',
13
- :local_root => 'mylocalcloud'})
10
+ bucket: 'mybucket',
11
+ provider: 'local',
12
+ local_root: 'mylocalcloud' })
14
13
 
15
14
  # Create site
16
15
  FileUtils.mkdir_p('output')
@@ -38,12 +37,12 @@ class Nanoc::Extra::Deployers::FogTest < Nanoc::TestCase
38
37
  fog = Nanoc::Extra::Deployers::Fog.new(
39
38
  'output/',
40
39
  {
41
- :provider => 'aws',
42
- # FIXME bucket is necessary for deployer but fog doesn't like it
43
- :bucket_name => 'doesntmatter',
44
- :aws_access_key_id => 'meh',
45
- :aws_secret_access_key => 'dontcare'},
46
- :dry_run => true)
40
+ provider: 'aws',
41
+ # FIXME: bucket is necessary for deployer but fog doesn't like it
42
+ bucket_name: 'doesntmatter',
43
+ aws_access_key_id: 'meh',
44
+ aws_secret_access_key: 'dontcare' },
45
+ dry_run: true)
47
46
 
48
47
  # Create site
49
48
  FileUtils.mkdir_p('output')
@@ -56,7 +55,7 @@ class Nanoc::Extra::Deployers::FogTest < Nanoc::TestCase
56
55
  # Run
57
56
  fog.run
58
57
  ensure
59
- # Hack :(
58
+ # FIXME: ugly hack
60
59
  ::Fog.instance_eval { @mocking = false }
61
60
  end
62
61
  end
@@ -68,9 +67,9 @@ class Nanoc::Extra::Deployers::FogTest < Nanoc::TestCase
68
67
  fog = Nanoc::Extra::Deployers::Fog.new(
69
68
  'output/',
70
69
  {
71
- :bucket => 'mybucket',
72
- :provider => 'local',
73
- :local_root => 'mylocalcloud'})
70
+ bucket: 'mybucket',
71
+ provider: 'local',
72
+ local_root: 'mylocalcloud' })
74
73
 
75
74
  # Setup fake local cloud
76
75
  FileUtils.mkdir_p('mylocalcloud/mybucket')
@@ -97,5 +96,4 @@ class Nanoc::Extra::Deployers::FogTest < Nanoc::TestCase
97
96
  assert_equal 'I am a dog!', File.read('mylocalcloud/mybucket/bark')
98
97
  end
99
98
  end
100
-
101
99
  end
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::Deployers::RsyncTest < Nanoc::TestCase
4
-
5
4
  def test_run_without_dst
6
5
  # Create deployer
7
6
  rsync = Nanoc::Extra::Deployers::Rsync.new(
@@ -26,7 +25,7 @@ class Nanoc::Extra::Deployers::RsyncTest < Nanoc::TestCase
26
25
  # Create deployer
27
26
  rsync = Nanoc::Extra::Deployers::Rsync.new(
28
27
  'output/',
29
- { :dst => 'asdf/' })
28
+ { dst: 'asdf/' })
30
29
 
31
30
  # Mock run_shell_cmd
32
31
  def rsync.run_shell_cmd(args)
@@ -46,7 +45,7 @@ class Nanoc::Extra::Deployers::RsyncTest < Nanoc::TestCase
46
45
  # Create deployer
47
46
  rsync = Nanoc::Extra::Deployers::Rsync.new(
48
47
  'output',
49
- { :dst => 'asdf' })
48
+ { dst: 'asdf' })
50
49
 
51
50
  # Mock run_shell_cmd
52
51
  def rsync.run_shell_cmd(args)
@@ -68,8 +67,8 @@ class Nanoc::Extra::Deployers::RsyncTest < Nanoc::TestCase
68
67
  # Create deployer
69
68
  rsync = Nanoc::Extra::Deployers::Rsync.new(
70
69
  'output',
71
- { :dst => 'asdf' },
72
- :dry_run => true)
70
+ { dst: 'asdf' },
71
+ dry_run: true)
73
72
 
74
73
  # Mock run_shell_cmd
75
74
  def rsync.run_shell_cmd(args)
@@ -86,5 +85,4 @@ class Nanoc::Extra::Deployers::RsyncTest < Nanoc::TestCase
86
85
  rsync.instance_eval { @shell_cms_args }
87
86
  )
88
87
  end
89
-
90
88
  end
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::AutoCompilerTest < Nanoc::TestCase
4
-
5
4
  def test_handle_request_with_item_rep_with_index_filename
6
5
  if_have 'mime/types', 'rack' do
7
6
  # Create site
@@ -77,13 +76,17 @@ class Nanoc::Extra::AutoCompilerTest < Nanoc::TestCase
77
76
  @expected_path_info = 'somefile.txt'
78
77
  @actual_path_info = env['PATH_INFO']
79
78
  end
80
- def file_server.expected_path_info; @expected_path_info; end
81
- def file_server.actual_path_info; @actual_path_info; end
79
+ def file_server.expected_path_info
80
+ @expected_path_info
81
+ end
82
+ def file_server.actual_path_info
83
+ @actual_path_info
84
+ end
82
85
 
83
86
  # Create site
84
87
  site = mock
85
88
  site.expects(:items).returns([])
86
- site.expects(:config).returns({ :output_dir => 'out', :index_filenames => ['index.html'] })
89
+ site.expects(:config).returns({ output_dir: 'out', index_filenames: ['index.html'] })
87
90
 
88
91
  # Create autocompiler
89
92
  autocompiler = Nanoc::Extra::AutoCompiler.new('.')
@@ -111,13 +114,17 @@ class Nanoc::Extra::AutoCompilerTest < Nanoc::TestCase
111
114
  @expected_path_info = '/foo/bar/index.html'
112
115
  @actual_path_info = env['PATH_INFO']
113
116
  end
114
- def file_server.expected_path_info; @expected_path_info; end
115
- def file_server.actual_path_info; @actual_path_info; end
117
+ def file_server.expected_path_info
118
+ @expected_path_info
119
+ end
120
+ def file_server.actual_path_info
121
+ @actual_path_info
122
+ end
116
123
 
117
124
  # Create site
118
125
  site = mock
119
126
  site.expects(:items).returns([])
120
- site.expects(:config).at_least_once.returns({ :output_dir => 'out', :index_filenames => ['index.html'] })
127
+ site.expects(:config).at_least_once.returns({ output_dir: 'out', index_filenames: ['index.html'] })
121
128
 
122
129
  # Create autocompiler
123
130
  autocompiler = Nanoc::Extra::AutoCompiler.new('.')
@@ -145,13 +152,17 @@ class Nanoc::Extra::AutoCompilerTest < Nanoc::TestCase
145
152
  @expected_path_info = 'foo/bar/'
146
153
  @actual_path_info = env['PATH_INFO']
147
154
  end
148
- def file_server.expected_path_info; @expected_path_info; end
149
- def file_server.actual_path_info; @actual_path_info; end
155
+ def file_server.expected_path_info
156
+ @expected_path_info
157
+ end
158
+ def file_server.actual_path_info
159
+ @actual_path_info
160
+ end
150
161
 
151
162
  # Create site
152
163
  site = mock
153
164
  site.expects(:items).returns([])
154
- site.expects(:config).at_least_once.returns({ :output_dir => 'out', :index_filenames => ['index.html'] })
165
+ site.expects(:config).at_least_once.returns({ output_dir: 'out', index_filenames: ['index.html'] })
155
166
 
156
167
  # Create autocompiler
157
168
  autocompiler = Nanoc::Extra::AutoCompiler.new('.')
@@ -179,13 +190,17 @@ class Nanoc::Extra::AutoCompilerTest < Nanoc::TestCase
179
190
  @expected_path_info = 'foo/bar'
180
191
  @actual_path_info = env['PATH_INFO']
181
192
  end
182
- def file_server.expected_path_info; @expected_path_info; end
183
- def file_server.actual_path_info; @actual_path_info; end
193
+ def file_server.expected_path_info
194
+ @expected_path_info
195
+ end
196
+ def file_server.actual_path_info
197
+ @actual_path_info
198
+ end
184
199
 
185
200
  # Create site
186
201
  site = mock
187
202
  site.expects(:items).returns([])
188
- site.expects(:config).at_least_once.returns({ :output_dir => 'out', :index_filenames => ['index.html'] })
203
+ site.expects(:config).at_least_once.returns({ output_dir: 'out', index_filenames: ['index.html'] })
189
204
 
190
205
  # Create autocompiler
191
206
  autocompiler = Nanoc::Extra::AutoCompiler.new('.')
@@ -213,13 +228,17 @@ class Nanoc::Extra::AutoCompilerTest < Nanoc::TestCase
213
228
  @expected_path_info = 'foo/bar'
214
229
  @actual_path_info = env['PATH_INFO']
215
230
  end
216
- def file_server.expected_path_info; @expected_path_info; end
217
- def file_server.actual_path_info; @actual_path_info; end
231
+ def file_server.expected_path_info
232
+ @expected_path_info
233
+ end
234
+ def file_server.actual_path_info
235
+ @actual_path_info
236
+ end
218
237
 
219
238
  # Create site
220
239
  site = mock
221
240
  site.expects(:items).returns([])
222
- site.expects(:config).at_least_once.returns({ :output_dir => 'out', :index_filenames => ['index.html'] })
241
+ site.expects(:config).at_least_once.returns({ output_dir: 'out', index_filenames: ['index.html'] })
223
242
 
224
243
  # Create autocompiler
225
244
  autocompiler = Nanoc::Extra::AutoCompiler.new('.')
@@ -243,13 +262,17 @@ class Nanoc::Extra::AutoCompilerTest < Nanoc::TestCase
243
262
  @expected_path_info = 'four-oh-four.txt'
244
263
  @actual_path_info = env['PATH_INFO']
245
264
  end
246
- def file_server.expected_path_info; @expected_path_info; end
247
- def file_server.actual_path_info; @actual_path_info; end
265
+ def file_server.expected_path_info
266
+ @expected_path_info
267
+ end
268
+ def file_server.actual_path_info
269
+ @actual_path_info
270
+ end
248
271
 
249
272
  # Create site
250
273
  site = mock
251
274
  site.expects(:items).returns([])
252
- site.expects(:config).at_least_once.returns({ :output_dir => 'out', :index_filenames => ['index.html'] })
275
+ site.expects(:config).at_least_once.returns({ output_dir: 'out', index_filenames: ['index.html'] })
253
276
 
254
277
  # Create autocompiler
255
278
  autocompiler = Nanoc::Extra::AutoCompiler.new('.')
@@ -370,10 +393,10 @@ class Nanoc::Extra::AutoCompilerTest < Nanoc::TestCase
370
393
  File.open('nanoc.yaml', 'w') do |io|
371
394
  io.write 'value: Foo'
372
395
  end
373
- File.utime(Time.now+5, Time.now+5, 'nanoc.yaml')
396
+ File.utime(Time.now + 5, Time.now + 5, 'nanoc.yaml')
374
397
 
375
398
  # Check
376
- status, headers, body = autocompiler.call('REQUEST_METHOD' => 'GET', 'PATH_INFO' => '/')
399
+ _status, _headers, body = autocompiler.call('REQUEST_METHOD' => 'GET', 'PATH_INFO' => '/')
377
400
  body.each do |b|
378
401
  assert_match(/The Grand Value of Configuration is Foo!/, b)
379
402
  end
@@ -382,10 +405,10 @@ class Nanoc::Extra::AutoCompilerTest < Nanoc::TestCase
382
405
  File.open('nanoc.yaml', 'w') do |io|
383
406
  io.write 'value: Bar'
384
407
  end
385
- File.utime(Time.now+5, Time.now+5, 'nanoc.yaml')
408
+ File.utime(Time.now + 5, Time.now + 5, 'nanoc.yaml')
386
409
 
387
410
  # Check
388
- status, headers, body = autocompiler.call('REQUEST_METHOD' => 'GET', 'PATH_INFO' => '/')
411
+ _status, _headers, body = autocompiler.call('REQUEST_METHOD' => 'GET', 'PATH_INFO' => '/')
389
412
  body.each do |b|
390
413
  assert_match(/The Grand Value of Configuration is Bar!/, b)
391
414
  end
@@ -400,7 +423,7 @@ class Nanoc::Extra::AutoCompilerTest < Nanoc::TestCase
400
423
 
401
424
  # Mock dependencies
402
425
  site = mock
403
- site.stubs(:config).returns({ :output_dir => 'output/' })
426
+ site.stubs(:config).returns({ output_dir: 'output/' })
404
427
  site.stubs(:items).returns([])
405
428
  autocompiler.stubs(:build_site)
406
429
  autocompiler.stubs(:site).returns(site)
@@ -411,5 +434,4 @@ class Nanoc::Extra::AutoCompilerTest < Nanoc::TestCase
411
434
  assert_match("File not found: /software\n", result[2][0])
412
435
  end
413
436
  end
414
-
415
437
  end
@@ -1,11 +1,10 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::FileProxyTest < Nanoc::TestCase
4
-
5
4
  def test_create_many
6
5
  if_implemented do
7
6
  # Create test file
8
- File.open('test.txt', 'w') { |io| }
7
+ File.open('test.txt', 'w') { |_io| }
9
8
 
10
9
  # Create lots of file proxies
11
10
  count = Process.getrlimit(Process::RLIMIT_NOFILE)[0] + 5
@@ -13,5 +12,4 @@ class Nanoc::Extra::FileProxyTest < Nanoc::TestCase
13
12
  count.times { file_proxies << Nanoc::Extra::FileProxy.new('test.txt') }
14
13
  end
15
14
  end
16
-
17
15
  end
@@ -13,7 +13,7 @@ class Nanoc::Extra::FilesystemToolsTest < Nanoc::TestCase
13
13
  File.open("dir#{i}/foo.md", 'w') { |io| io.write('o hai') }
14
14
  end
15
15
  (1..10).each do |i|
16
- File.symlink("../dir#{i}", "dir#{i-1}/sub")
16
+ File.symlink("../dir#{i}", "dir#{i - 1}/sub")
17
17
  end
18
18
 
19
19
  # Check
@@ -32,7 +32,7 @@ class Nanoc::Extra::FilesystemToolsTest < Nanoc::TestCase
32
32
  'dir0/sub/sub/sub/sub/sub/sub/sub/sub/sub/foo.md',
33
33
  'dir0/sub/sub/sub/sub/sub/sub/sub/sub/sub/sub/foo.md'
34
34
  ]
35
- actual_files = Nanoc::Extra::FilesystemTools.all_files_in('dir0').sort
35
+ actual_files = Nanoc::Extra::FilesystemTools.all_files_in('dir0', nil).sort
36
36
  assert_equal expected_files, actual_files
37
37
  end
38
38
 
@@ -43,11 +43,11 @@ class Nanoc::Extra::FilesystemToolsTest < Nanoc::TestCase
43
43
  File.open("dir#{i}/foo.md", 'w') { |io| io.write('o hai') }
44
44
  end
45
45
  (1..15).each do |i|
46
- File.symlink("../dir#{i}", "dir#{i-1}/sub")
46
+ File.symlink("../dir#{i}", "dir#{i - 1}/sub")
47
47
  end
48
48
 
49
49
  assert_raises Nanoc::Extra::FilesystemTools::MaxSymlinkDepthExceededError do
50
- Nanoc::Extra::FilesystemTools.all_files_in('dir0')
50
+ Nanoc::Extra::FilesystemTools.all_files_in('dir0', nil)
51
51
  end
52
52
  end
53
53
 
@@ -61,7 +61,7 @@ class Nanoc::Extra::FilesystemToolsTest < Nanoc::TestCase
61
61
  File.symlink('../bar', 'foo/barlink')
62
62
 
63
63
  expected_files = ['foo/barlink/y.md', 'foo/x.md']
64
- actual_files = Nanoc::Extra::FilesystemTools.all_files_in('foo').sort
64
+ actual_files = Nanoc::Extra::FilesystemTools.all_files_in('foo', nil).sort
65
65
  assert_equal expected_files, actual_files
66
66
  end
67
67
 
@@ -74,7 +74,7 @@ class Nanoc::Extra::FilesystemToolsTest < Nanoc::TestCase
74
74
 
75
75
  # Check
76
76
  expected_files = ['dir/bar-link', 'dir/foo']
77
- actual_files = Nanoc::Extra::FilesystemTools.all_files_in('dir').sort
77
+ actual_files = Nanoc::Extra::FilesystemTools.all_files_in('dir', nil).sort
78
78
  assert_equal expected_files, actual_files
79
79
  end
80
80
 
@@ -93,7 +93,7 @@ class Nanoc::Extra::FilesystemToolsTest < Nanoc::TestCase
93
93
  File.open('foo', 'w') { |io| io.write('o hai') }
94
94
  File.symlink('foo', 'symlin-0')
95
95
  (1..7).each do |i|
96
- File.symlink("symlink-#{i-1}", "symlink-#{i}")
96
+ File.symlink("symlink-#{i - 1}", "symlink-#{i}")
97
97
  end
98
98
 
99
99
  assert_raises Nanoc::Extra::FilesystemTools::MaxSymlinkDepthExceededError do
@@ -101,4 +101,44 @@ class Nanoc::Extra::FilesystemToolsTest < Nanoc::TestCase
101
101
  end
102
102
  end
103
103
 
104
+ def test_unwanted_dotfiles_not_found
105
+ # Write sample files
106
+ FileUtils.mkdir_p('dir')
107
+ File.open('dir/.DS_Store', 'w') { |io| io.write('o hai') }
108
+ File.open('dir/.htaccess', 'w') { |io| io.write('o hai') }
109
+
110
+ actual_files = Nanoc::Extra::FilesystemTools.all_files_in('dir', nil).sort
111
+ assert_equal [], actual_files
112
+ end
113
+
114
+ def test_user_dotfiles_are_valid_items
115
+ # Write sample files
116
+ FileUtils.mkdir_p('dir')
117
+ File.open('dir/.other', 'w') { |io| io.write('o hai') }
118
+
119
+ actual_files = Nanoc::Extra::FilesystemTools.all_files_in('dir', '**/.other').sort
120
+ assert_equal ['dir/.other'], actual_files
121
+ end
122
+
123
+ def test_multiple_user_dotfiles_are_valid_items
124
+ # Write sample files
125
+ FileUtils.mkdir_p('dir')
126
+ File.open('dir/.other', 'w') { |io| io.write('o hai') }
127
+ File.open('dir/.DS_Store', 'w') { |io| io.write('o hai') }
128
+
129
+ actual_files = Nanoc::Extra::FilesystemTools.all_files_in('dir', ['**/.other', '**/.DS_Store']).sort
130
+ assert_equal ['dir/.other', 'dir/.DS_Store'].sort, actual_files.sort
131
+ end
132
+
133
+ def test_unknown_pattern
134
+ # Write sample files
135
+ FileUtils.mkdir_p('dir')
136
+ File.open('dir/.other', 'w') { |io| io.write('o hai') }
137
+
138
+ pattern = { dotfiles: '**/.other' }
139
+
140
+ assert_raises Nanoc::Errors::GenericTrivial, "Do not know how to handle extra_files: #{pattern.inspect}" do
141
+ Nanoc::Extra::FilesystemTools.all_files_in('dir0', pattern)
142
+ end
143
+ end
104
144
  end
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  class Nanoc::Extra::LinkCollectorTest < Nanoc::TestCase
4
-
5
4
  def test_all
6
5
  # Create dummy data
7
6
  File.open('file-a.html', 'w') do |io|
@@ -106,5 +105,4 @@ class Nanoc::Extra::LinkCollectorTest < Nanoc::TestCase
106
105
  assert_includes hrefs, '../stuff'
107
106
  assert_includes hrefs, '/stuff'
108
107
  end
109
-
110
108
  end