nanoc 4.7.9 → 4.7.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (511) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +2 -0
  3. data/Gemfile +2 -0
  4. data/Gemfile.lock +26 -27
  5. data/Guardfile +2 -0
  6. data/NEWS.md +11 -0
  7. data/README.md +1 -1
  8. data/Rakefile +2 -0
  9. data/bin/nanoc +2 -0
  10. data/lib/nanoc.rb +3 -1
  11. data/lib/nanoc/base.rb +2 -0
  12. data/lib/nanoc/base/contracts_support.rb +2 -0
  13. data/lib/nanoc/base/core_ext.rb +2 -0
  14. data/lib/nanoc/base/core_ext/array.rb +2 -0
  15. data/lib/nanoc/base/core_ext/hash.rb +2 -0
  16. data/lib/nanoc/base/core_ext/pathname.rb +2 -0
  17. data/lib/nanoc/base/core_ext/string.rb +2 -0
  18. data/lib/nanoc/base/entities.rb +2 -0
  19. data/lib/nanoc/base/entities/action_sequence.rb +2 -0
  20. data/lib/nanoc/base/entities/checksum_collection.rb +2 -0
  21. data/lib/nanoc/base/entities/code_snippet.rb +3 -0
  22. data/lib/nanoc/base/entities/configuration.rb +10 -3
  23. data/lib/nanoc/base/entities/content.rb +2 -0
  24. data/lib/nanoc/base/entities/context.rb +2 -0
  25. data/lib/nanoc/base/entities/dependency.rb +2 -0
  26. data/lib/nanoc/base/entities/directed_graph.rb +2 -0
  27. data/lib/nanoc/base/entities/document.rb +2 -0
  28. data/lib/nanoc/base/entities/identifiable_collection.rb +2 -0
  29. data/lib/nanoc/base/entities/identifier.rb +2 -0
  30. data/lib/nanoc/base/entities/item.rb +2 -0
  31. data/lib/nanoc/base/entities/item_rep.rb +2 -0
  32. data/lib/nanoc/base/entities/layout.rb +2 -0
  33. data/lib/nanoc/base/entities/lazy_value.rb +2 -0
  34. data/lib/nanoc/base/entities/outdatedness_reasons.rb +2 -0
  35. data/lib/nanoc/base/entities/outdatedness_status.rb +2 -0
  36. data/lib/nanoc/base/entities/pattern.rb +2 -0
  37. data/lib/nanoc/base/entities/processing_action.rb +2 -0
  38. data/lib/nanoc/base/entities/processing_actions.rb +2 -0
  39. data/lib/nanoc/base/entities/processing_actions/filter.rb +2 -0
  40. data/lib/nanoc/base/entities/processing_actions/layout.rb +2 -0
  41. data/lib/nanoc/base/entities/processing_actions/snapshot.rb +2 -0
  42. data/lib/nanoc/base/entities/props.rb +3 -1
  43. data/lib/nanoc/base/entities/site.rb +2 -0
  44. data/lib/nanoc/base/entities/snapshot_def.rb +2 -0
  45. data/lib/nanoc/base/error.rb +2 -0
  46. data/lib/nanoc/base/errors.rb +3 -1
  47. data/lib/nanoc/base/feature.rb +2 -0
  48. data/lib/nanoc/base/memoization.rb +2 -0
  49. data/lib/nanoc/base/repos.rb +2 -0
  50. data/lib/nanoc/base/repos/action_sequence_store.rb +2 -0
  51. data/lib/nanoc/base/repos/aggregate_data_source.rb +2 -0
  52. data/lib/nanoc/base/repos/checksum_store.rb +2 -0
  53. data/lib/nanoc/base/repos/compiled_content_cache.rb +2 -0
  54. data/lib/nanoc/base/repos/config_loader.rb +2 -0
  55. data/lib/nanoc/base/repos/data_source.rb +2 -0
  56. data/lib/nanoc/base/repos/dependency_store.rb +2 -0
  57. data/lib/nanoc/base/repos/in_mem_data_source.rb +2 -0
  58. data/lib/nanoc/base/repos/item_rep_repo.rb +2 -0
  59. data/lib/nanoc/base/repos/outdatedness_store.rb +2 -0
  60. data/lib/nanoc/base/repos/prefixed_data_source.rb +2 -0
  61. data/lib/nanoc/base/repos/site_loader.rb +2 -0
  62. data/lib/nanoc/base/repos/snapshot_repo.rb +2 -0
  63. data/lib/nanoc/base/repos/store.rb +2 -0
  64. data/lib/nanoc/base/services.rb +2 -0
  65. data/lib/nanoc/base/services/action_provider.rb +2 -0
  66. data/lib/nanoc/base/services/action_sequence_builder.rb +2 -0
  67. data/lib/nanoc/base/services/checksummer.rb +3 -1
  68. data/lib/nanoc/base/services/compilation_context.rb +2 -0
  69. data/lib/nanoc/base/services/compiler.rb +2 -0
  70. data/lib/nanoc/base/services/compiler/phases.rb +2 -0
  71. data/lib/nanoc/base/services/compiler/phases/abstract.rb +2 -0
  72. data/lib/nanoc/base/services/compiler/phases/cache.rb +2 -0
  73. data/lib/nanoc/base/services/compiler/phases/mark_done.rb +2 -0
  74. data/lib/nanoc/base/services/compiler/phases/recalculate.rb +2 -0
  75. data/lib/nanoc/base/services/compiler/phases/resume.rb +2 -0
  76. data/lib/nanoc/base/services/compiler/phases/write.rb +2 -0
  77. data/lib/nanoc/base/services/compiler/stages.rb +2 -0
  78. data/lib/nanoc/base/services/compiler/stages/build_reps.rb +2 -0
  79. data/lib/nanoc/base/services/compiler/stages/calculate_checksums.rb +2 -0
  80. data/lib/nanoc/base/services/compiler/stages/cleanup.rb +2 -0
  81. data/lib/nanoc/base/services/compiler/stages/compile_reps.rb +2 -0
  82. data/lib/nanoc/base/services/compiler/stages/determine_outdatedness.rb +2 -0
  83. data/lib/nanoc/base/services/compiler/stages/forget_outdated_dependencies.rb +2 -0
  84. data/lib/nanoc/base/services/compiler/stages/load_stores.rb +2 -0
  85. data/lib/nanoc/base/services/compiler/stages/postprocess.rb +2 -0
  86. data/lib/nanoc/base/services/compiler/stages/preprocess.rb +2 -0
  87. data/lib/nanoc/base/services/compiler/stages/prune.rb +2 -0
  88. data/lib/nanoc/base/services/compiler/stages/store_post_compilation_state.rb +2 -0
  89. data/lib/nanoc/base/services/compiler/stages/store_pre_compilation_state.rb +2 -0
  90. data/lib/nanoc/base/services/compiler_loader.rb +2 -0
  91. data/lib/nanoc/base/services/dependency_tracker.rb +2 -0
  92. data/lib/nanoc/base/services/executor.rb +2 -0
  93. data/lib/nanoc/base/services/filter.rb +3 -1
  94. data/lib/nanoc/base/services/item_rep_builder.rb +2 -0
  95. data/lib/nanoc/base/services/item_rep_router.rb +2 -0
  96. data/lib/nanoc/base/services/item_rep_selector.rb +2 -0
  97. data/lib/nanoc/base/services/item_rep_writer.rb +3 -1
  98. data/lib/nanoc/base/services/notification_center.rb +2 -0
  99. data/lib/nanoc/base/services/outdatedness_checker.rb +2 -0
  100. data/lib/nanoc/base/services/outdatedness_rule.rb +2 -0
  101. data/lib/nanoc/base/services/outdatedness_rules.rb +2 -0
  102. data/lib/nanoc/base/services/outdatedness_rules/attributes_modified.rb +2 -0
  103. data/lib/nanoc/base/services/outdatedness_rules/code_snippets_modified.rb +2 -0
  104. data/lib/nanoc/base/services/outdatedness_rules/configuration_modified.rb +2 -0
  105. data/lib/nanoc/base/services/outdatedness_rules/content_modified.rb +2 -0
  106. data/lib/nanoc/base/services/outdatedness_rules/not_written.rb +2 -0
  107. data/lib/nanoc/base/services/outdatedness_rules/rules_modified.rb +2 -0
  108. data/lib/nanoc/base/services/outdatedness_rules/uses_always_outdated_filter.rb +2 -0
  109. data/lib/nanoc/base/services/pruner.rb +4 -2
  110. data/lib/nanoc/base/services/temp_filename_factory.rb +2 -0
  111. data/lib/nanoc/base/views.rb +2 -0
  112. data/lib/nanoc/base/views/config_view.rb +2 -0
  113. data/lib/nanoc/base/views/identifiable_collection_view.rb +2 -0
  114. data/lib/nanoc/base/views/item_collection_with_reps_view.rb +2 -0
  115. data/lib/nanoc/base/views/item_collection_without_reps_view.rb +2 -0
  116. data/lib/nanoc/base/views/item_rep_collection_view.rb +2 -0
  117. data/lib/nanoc/base/views/item_rep_view.rb +2 -0
  118. data/lib/nanoc/base/views/item_with_reps_view.rb +2 -0
  119. data/lib/nanoc/base/views/item_without_reps_view.rb +2 -0
  120. data/lib/nanoc/base/views/layout_collection_view.rb +2 -0
  121. data/lib/nanoc/base/views/layout_view.rb +2 -0
  122. data/lib/nanoc/base/views/mixins/document_view_mixin.rb +2 -0
  123. data/lib/nanoc/base/views/mixins/mutable_document_view_mixin.rb +2 -0
  124. data/lib/nanoc/base/views/mixins/with_reps_view_mixin.rb +2 -0
  125. data/lib/nanoc/base/views/mutable_config_view.rb +2 -0
  126. data/lib/nanoc/base/views/mutable_identifiable_collection_view.rb +2 -0
  127. data/lib/nanoc/base/views/mutable_item_collection_view.rb +2 -0
  128. data/lib/nanoc/base/views/mutable_item_view.rb +2 -0
  129. data/lib/nanoc/base/views/mutable_layout_collection_view.rb +2 -0
  130. data/lib/nanoc/base/views/mutable_layout_view.rb +2 -0
  131. data/lib/nanoc/base/views/post_compile_item_collection_view.rb +2 -0
  132. data/lib/nanoc/base/views/post_compile_item_rep_collection_view.rb +2 -0
  133. data/lib/nanoc/base/views/post_compile_item_rep_view.rb +2 -0
  134. data/lib/nanoc/base/views/post_compile_item_view.rb +2 -0
  135. data/lib/nanoc/base/views/view.rb +2 -0
  136. data/lib/nanoc/base/views/view_context.rb +2 -0
  137. data/lib/nanoc/checking.rb +2 -0
  138. data/lib/nanoc/checking/check.rb +2 -0
  139. data/lib/nanoc/checking/checks.rb +2 -0
  140. data/lib/nanoc/checking/checks/css.rb +2 -0
  141. data/lib/nanoc/checking/checks/external_links.rb +3 -1
  142. data/lib/nanoc/checking/checks/html.rb +2 -0
  143. data/lib/nanoc/checking/checks/internal_links.rb +2 -0
  144. data/lib/nanoc/checking/checks/mixed_content.rb +2 -0
  145. data/lib/nanoc/checking/checks/stale.rb +2 -0
  146. data/lib/nanoc/checking/checks/w3c_validator.rb +2 -0
  147. data/lib/nanoc/checking/dsl.rb +2 -0
  148. data/lib/nanoc/checking/issue.rb +2 -0
  149. data/lib/nanoc/checking/runner.rb +2 -0
  150. data/lib/nanoc/cli.rb +2 -0
  151. data/lib/nanoc/cli/ansi_string_colorizer.rb +2 -0
  152. data/lib/nanoc/cli/cleaning_stream.rb +2 -0
  153. data/lib/nanoc/cli/command_runner.rb +2 -0
  154. data/lib/nanoc/cli/commands/check.rb +2 -0
  155. data/lib/nanoc/cli/commands/compile.rb +4 -2
  156. data/lib/nanoc/cli/commands/compile_listeners/abstract.rb +2 -0
  157. data/lib/nanoc/cli/commands/compile_listeners/debug_printer.rb +2 -0
  158. data/lib/nanoc/cli/commands/compile_listeners/diff_generator.rb +2 -0
  159. data/lib/nanoc/cli/commands/compile_listeners/file_action_printer.rb +2 -0
  160. data/lib/nanoc/cli/commands/compile_listeners/stack_prof_profiler.rb +3 -1
  161. data/lib/nanoc/cli/commands/compile_listeners/timing_recorder.rb +4 -14
  162. data/lib/nanoc/cli/commands/create-site.rb +229 -227
  163. data/lib/nanoc/cli/commands/deploy.rb +2 -0
  164. data/lib/nanoc/cli/commands/nanoc.rb +2 -0
  165. data/lib/nanoc/cli/commands/prune.rb +8 -6
  166. data/lib/nanoc/cli/commands/shell.rb +2 -0
  167. data/lib/nanoc/cli/commands/show-data.rb +6 -4
  168. data/lib/nanoc/cli/commands/show-plugins.rb +6 -4
  169. data/lib/nanoc/cli/commands/show-rules.rb +2 -0
  170. data/lib/nanoc/cli/commands/view.rb +6 -4
  171. data/lib/nanoc/cli/error_handler.rb +2 -0
  172. data/lib/nanoc/cli/logger.rb +2 -0
  173. data/lib/nanoc/cli/stream_cleaners.rb +2 -0
  174. data/lib/nanoc/cli/stream_cleaners/abstract.rb +2 -0
  175. data/lib/nanoc/cli/stream_cleaners/ansi_colors.rb +2 -0
  176. data/lib/nanoc/cli/stream_cleaners/utf8.rb +6 -1
  177. data/lib/nanoc/data_sources.rb +2 -0
  178. data/lib/nanoc/data_sources/filesystem.rb +2 -0
  179. data/lib/nanoc/data_sources/filesystem/errors.rb +2 -0
  180. data/lib/nanoc/data_sources/filesystem/tools.rb +2 -0
  181. data/lib/nanoc/deploying.rb +2 -0
  182. data/lib/nanoc/deploying/deployer.rb +2 -0
  183. data/lib/nanoc/deploying/deployers.rb +2 -0
  184. data/lib/nanoc/deploying/deployers/fog.rb +2 -0
  185. data/lib/nanoc/deploying/deployers/git.rb +2 -0
  186. data/lib/nanoc/deploying/deployers/rsync.rb +2 -0
  187. data/lib/nanoc/extra.rb +2 -0
  188. data/lib/nanoc/extra/core_ext.rb +2 -0
  189. data/lib/nanoc/extra/core_ext/pathname.rb +2 -0
  190. data/lib/nanoc/extra/core_ext/time.rb +2 -0
  191. data/lib/nanoc/extra/jruby_nokogiri_warner.rb +14 -12
  192. data/lib/nanoc/extra/link_collector.rb +2 -0
  193. data/lib/nanoc/extra/parallel_collection.rb +2 -0
  194. data/lib/nanoc/extra/piper.rb +2 -0
  195. data/lib/nanoc/filters.rb +2 -0
  196. data/lib/nanoc/filters/asciidoc.rb +2 -0
  197. data/lib/nanoc/filters/bluecloth.rb +2 -0
  198. data/lib/nanoc/filters/coffeescript.rb +2 -0
  199. data/lib/nanoc/filters/colorize_syntax.rb +3 -1
  200. data/lib/nanoc/filters/colorize_syntax/colorizers.rb +2 -0
  201. data/lib/nanoc/filters/erb.rb +2 -0
  202. data/lib/nanoc/filters/erubi.rb +2 -0
  203. data/lib/nanoc/filters/erubis.rb +2 -0
  204. data/lib/nanoc/filters/haml.rb +2 -0
  205. data/lib/nanoc/filters/handlebars.rb +2 -0
  206. data/lib/nanoc/filters/kramdown.rb +2 -0
  207. data/lib/nanoc/filters/less.rb +2 -0
  208. data/lib/nanoc/filters/markaby.rb +2 -0
  209. data/lib/nanoc/filters/maruku.rb +2 -0
  210. data/lib/nanoc/filters/mustache.rb +2 -0
  211. data/lib/nanoc/filters/pandoc.rb +2 -0
  212. data/lib/nanoc/filters/rainpress.rb +2 -0
  213. data/lib/nanoc/filters/rdiscount.rb +2 -0
  214. data/lib/nanoc/filters/rdoc.rb +2 -0
  215. data/lib/nanoc/filters/redcarpet.rb +2 -0
  216. data/lib/nanoc/filters/redcloth.rb +2 -0
  217. data/lib/nanoc/filters/relativize_paths.rb +8 -7
  218. data/lib/nanoc/filters/rubypants.rb +2 -0
  219. data/lib/nanoc/filters/sass.rb +2 -0
  220. data/lib/nanoc/filters/sass/sass_filesystem_importer.rb +2 -0
  221. data/lib/nanoc/filters/slim.rb +3 -1
  222. data/lib/nanoc/filters/typogruby.rb +2 -0
  223. data/lib/nanoc/filters/uglify_js.rb +2 -0
  224. data/lib/nanoc/filters/xsl.rb +2 -0
  225. data/lib/nanoc/filters/yui_compressor.rb +2 -0
  226. data/lib/nanoc/helpers.rb +2 -0
  227. data/lib/nanoc/helpers/blogging.rb +3 -1
  228. data/lib/nanoc/helpers/breadcrumbs.rb +2 -0
  229. data/lib/nanoc/helpers/capturing.rb +4 -2
  230. data/lib/nanoc/helpers/child_parent.rb +2 -0
  231. data/lib/nanoc/helpers/filtering.rb +2 -0
  232. data/lib/nanoc/helpers/html_escape.rb +2 -0
  233. data/lib/nanoc/helpers/link_to.rb +2 -0
  234. data/lib/nanoc/helpers/rendering.rb +2 -0
  235. data/lib/nanoc/helpers/tagging.rb +2 -0
  236. data/lib/nanoc/helpers/text.rb +2 -0
  237. data/lib/nanoc/helpers/xml_sitemap.rb +3 -1
  238. data/lib/nanoc/rule_dsl.rb +2 -0
  239. data/lib/nanoc/rule_dsl/action_provider.rb +2 -0
  240. data/lib/nanoc/rule_dsl/action_sequence_calculator.rb +2 -0
  241. data/lib/nanoc/rule_dsl/compiler_dsl.rb +4 -1
  242. data/lib/nanoc/rule_dsl/recording_executor.rb +2 -0
  243. data/lib/nanoc/rule_dsl/rule.rb +2 -0
  244. data/lib/nanoc/rule_dsl/rule_context.rb +2 -0
  245. data/lib/nanoc/rule_dsl/rules_collection.rb +2 -0
  246. data/lib/nanoc/rule_dsl/rules_loader.rb +2 -0
  247. data/lib/nanoc/spec.rb +3 -1
  248. data/lib/nanoc/telemetry.rb +4 -0
  249. data/lib/nanoc/telemetry/counter.rb +2 -0
  250. data/lib/nanoc/telemetry/labelled_counter.rb +2 -0
  251. data/lib/nanoc/telemetry/labelled_summary.rb +2 -0
  252. data/lib/nanoc/telemetry/registry.rb +2 -0
  253. data/lib/nanoc/telemetry/stopwatch.rb +2 -0
  254. data/lib/nanoc/telemetry/summary.rb +2 -0
  255. data/lib/nanoc/telemetry/table.rb +35 -0
  256. data/lib/nanoc/version.rb +3 -1
  257. data/nanoc.gemspec +2 -0
  258. data/spec/contributors_spec.rb +2 -0
  259. data/spec/nanoc/base/checksummer_spec.rb +2 -0
  260. data/spec/nanoc/base/compiler_spec.rb +2 -0
  261. data/spec/nanoc/base/directed_graph_spec.rb +2 -0
  262. data/spec/nanoc/base/entities/action_sequence_spec.rb +2 -0
  263. data/spec/nanoc/base/entities/code_snippet_spec.rb +51 -0
  264. data/spec/nanoc/base/entities/configuration_spec.rb +15 -0
  265. data/spec/nanoc/base/entities/content_spec.rb +2 -0
  266. data/spec/nanoc/base/entities/document_spec.rb +2 -0
  267. data/spec/nanoc/base/entities/identifiable_collection_spec.rb +2 -0
  268. data/spec/nanoc/base/entities/identifier_spec.rb +2 -0
  269. data/spec/nanoc/base/entities/item_rep_spec.rb +2 -0
  270. data/spec/nanoc/base/entities/item_spec.rb +2 -0
  271. data/spec/nanoc/base/entities/layout_spec.rb +2 -0
  272. data/spec/nanoc/base/entities/lazy_value_spec.rb +3 -1
  273. data/spec/nanoc/base/entities/outdatedness_status_spec.rb +2 -0
  274. data/spec/nanoc/base/entities/pattern_spec.rb +2 -0
  275. data/spec/nanoc/base/entities/processing_action_spec.rb +2 -0
  276. data/spec/nanoc/base/entities/processing_actions/filter_spec.rb +2 -0
  277. data/spec/nanoc/base/entities/processing_actions/layout_spec.rb +2 -0
  278. data/spec/nanoc/base/entities/processing_actions/snapshot_spec.rb +2 -0
  279. data/spec/nanoc/base/entities/props_spec.rb +2 -0
  280. data/spec/nanoc/base/entities/site_spec.rb +2 -0
  281. data/spec/nanoc/base/errors/dependency_cycle_spec.rb +8 -6
  282. data/spec/nanoc/base/feature_spec.rb +4 -2
  283. data/spec/nanoc/base/filter_spec.rb +2 -0
  284. data/spec/nanoc/base/item_rep_writer_spec.rb +2 -0
  285. data/spec/nanoc/base/memoization_spec.rb +2 -0
  286. data/spec/nanoc/base/repos/checksum_store_spec.rb +2 -0
  287. data/spec/nanoc/base/repos/compiled_content_cache_spec.rb +2 -0
  288. data/spec/nanoc/base/repos/config_loader_spec.rb +2 -0
  289. data/spec/nanoc/base/repos/dependency_store_spec.rb +2 -0
  290. data/spec/nanoc/base/repos/outdatedness_store_spec.rb +2 -0
  291. data/spec/nanoc/base/repos/site_loader_spec.rb +2 -0
  292. data/spec/nanoc/base/repos/snapshot_repo_spec.rb +2 -0
  293. data/spec/nanoc/base/repos/store_spec.rb +2 -0
  294. data/spec/nanoc/base/services/compiler/phases/abstract_spec.rb +2 -0
  295. data/spec/nanoc/base/services/compiler/phases/cache_spec.rb +2 -0
  296. data/spec/nanoc/base/services/compiler/stages/calculate_checksums_spec.rb +2 -0
  297. data/spec/nanoc/base/services/compiler/stages/cleanup_spec.rb +2 -0
  298. data/spec/nanoc/base/services/compiler/stages/compile_reps_spec.rb +2 -0
  299. data/spec/nanoc/base/services/dependency_tracker_spec.rb +2 -0
  300. data/spec/nanoc/base/services/executor_spec.rb +2 -0
  301. data/spec/nanoc/base/services/item_rep_router_spec.rb +2 -0
  302. data/spec/nanoc/base/services/item_rep_selector_spec.rb +2 -0
  303. data/spec/nanoc/base/services/outdatedness_checker_spec.rb +2 -0
  304. data/spec/nanoc/base/services/outdatedness_rules_spec.rb +2 -0
  305. data/spec/nanoc/base/services/pruner_spec.rb +2 -0
  306. data/spec/nanoc/base/services/temp_filename_factory_spec.rb +2 -0
  307. data/spec/nanoc/base/views/config_view_spec.rb +2 -0
  308. data/spec/nanoc/base/views/document_view_spec.rb +2 -0
  309. data/spec/nanoc/base/views/identifiable_collection_view_spec.rb +2 -0
  310. data/spec/nanoc/base/views/item_collection_with_reps_view_spec.rb +2 -0
  311. data/spec/nanoc/base/views/item_collection_without_reps_view_spec.rb +2 -0
  312. data/spec/nanoc/base/views/item_rep_collection_view_spec.rb +2 -0
  313. data/spec/nanoc/base/views/item_rep_view_spec.rb +2 -0
  314. data/spec/nanoc/base/views/item_view_spec.rb +2 -0
  315. data/spec/nanoc/base/views/layout_collection_view_spec.rb +2 -0
  316. data/spec/nanoc/base/views/layout_view_spec.rb +2 -0
  317. data/spec/nanoc/base/views/mutable_config_view_spec.rb +2 -0
  318. data/spec/nanoc/base/views/mutable_document_view_spec.rb +2 -0
  319. data/spec/nanoc/base/views/mutable_identifiable_collection_view_spec.rb +2 -0
  320. data/spec/nanoc/base/views/mutable_item_collection_view_spec.rb +2 -0
  321. data/spec/nanoc/base/views/mutable_item_view_spec.rb +2 -0
  322. data/spec/nanoc/base/views/mutable_layout_collection_view_spec.rb +2 -0
  323. data/spec/nanoc/base/views/mutable_layout_view_spec.rb +2 -0
  324. data/spec/nanoc/base/views/post_compile_item_rep_collection_view_spec.rb +2 -0
  325. data/spec/nanoc/base/views/post_compile_item_rep_view_spec.rb +2 -0
  326. data/spec/nanoc/base/views/post_compile_item_view_spec.rb +2 -0
  327. data/spec/nanoc/cli/commands/compile/diff_generator_spec.rb +2 -0
  328. data/spec/nanoc/cli/commands/compile/file_action_printer_spec.rb +2 -0
  329. data/spec/nanoc/cli/commands/compile/timing_recorder_spec.rb +2 -0
  330. data/spec/nanoc/cli/commands/compile_spec.rb +2 -0
  331. data/spec/nanoc/cli/commands/deploy_spec.rb +2 -0
  332. data/spec/nanoc/cli/commands/shell_spec.rb +8 -0
  333. data/spec/nanoc/cli/commands/show_data_spec.rb +2 -0
  334. data/spec/nanoc/cli/commands/show_plugins_spec.rb +2 -0
  335. data/spec/nanoc/cli/commands/show_rules_spec.rb +2 -0
  336. data/spec/nanoc/cli/commands/view_spec.rb +2 -0
  337. data/spec/nanoc/cli/stream_cleaners/utf8_spec.rb +2 -0
  338. data/spec/nanoc/data_sources/filesystem_spec.rb +2 -0
  339. data/spec/nanoc/deploying/fog_spec.rb +2 -0
  340. data/spec/nanoc/deploying/git_spec.rb +5 -2
  341. data/spec/nanoc/extra/parallel_collection_spec.rb +2 -0
  342. data/spec/nanoc/filters/colorize_syntax/rouge_spec.rb +61 -59
  343. data/spec/nanoc/filters/less_spec.rb +2 -0
  344. data/spec/nanoc/helpers/blogging_spec.rb +2 -0
  345. data/spec/nanoc/helpers/breadcrumbs_spec.rb +2 -0
  346. data/spec/nanoc/helpers/capturing_spec.rb +6 -4
  347. data/spec/nanoc/helpers/child_parent_spec.rb +2 -0
  348. data/spec/nanoc/helpers/filtering_spec.rb +2 -0
  349. data/spec/nanoc/helpers/html_escape_spec.rb +3 -1
  350. data/spec/nanoc/helpers/link_to_spec.rb +2 -0
  351. data/spec/nanoc/helpers/rendering_spec.rb +2 -0
  352. data/spec/nanoc/helpers/tagging_spec.rb +2 -0
  353. data/spec/nanoc/helpers/text_spec.rb +2 -0
  354. data/spec/nanoc/integration/compile_command_spec.rb +6 -4
  355. data/spec/nanoc/integration/outdatedness_integration_spec.rb +36 -34
  356. data/spec/nanoc/integration/partial_recompilation_spec.rb +10 -8
  357. data/spec/nanoc/regressions/gh_1015_spec.rb +2 -0
  358. data/spec/nanoc/regressions/gh_1022_spec.rb +2 -0
  359. data/spec/nanoc/regressions/gh_1031_spec.rb +2 -0
  360. data/spec/nanoc/regressions/gh_1035_spec.rb +10 -8
  361. data/spec/nanoc/regressions/gh_1037a_spec.rb +2 -0
  362. data/spec/nanoc/regressions/gh_1037b_spec.rb +2 -0
  363. data/spec/nanoc/regressions/gh_1040_spec.rb +2 -0
  364. data/spec/nanoc/regressions/gh_1045_spec.rb +14 -12
  365. data/spec/nanoc/regressions/gh_1047_spec.rb +2 -0
  366. data/spec/nanoc/regressions/gh_1064_spec.rb +2 -0
  367. data/spec/nanoc/regressions/gh_1067_spec.rb +8 -6
  368. data/spec/nanoc/regressions/gh_1082a_spec.rb +2 -0
  369. data/spec/nanoc/regressions/gh_1082b_spec.rb +2 -0
  370. data/spec/nanoc/regressions/gh_1082c_spec.rb +2 -0
  371. data/spec/nanoc/regressions/gh_1082d_spec.rb +2 -0
  372. data/spec/nanoc/regressions/gh_1093_spec.rb +2 -0
  373. data/spec/nanoc/regressions/gh_1094_spec.rb +2 -0
  374. data/spec/nanoc/regressions/gh_1097_spec.rb +2 -0
  375. data/spec/nanoc/regressions/gh_1100_spec.rb +2 -0
  376. data/spec/nanoc/regressions/gh_1102_spec.rb +2 -0
  377. data/spec/nanoc/regressions/gh_1107_spec.rb +2 -0
  378. data/spec/nanoc/regressions/gh_1130_spec.rb +8 -6
  379. data/spec/nanoc/regressions/gh_1134_spec.rb +8 -6
  380. data/spec/nanoc/regressions/gh_1145_spec.rb +7 -5
  381. data/spec/nanoc/regressions/gh_1171_spec.rb +17 -15
  382. data/spec/nanoc/regressions/gh_761_spec.rb +2 -0
  383. data/spec/nanoc/regressions/gh_767_spec.rb +2 -0
  384. data/spec/nanoc/regressions/gh_769_spec.rb +2 -0
  385. data/spec/nanoc/regressions/gh_776_spec.rb +2 -0
  386. data/spec/nanoc/regressions/gh_787_spec.rb +2 -0
  387. data/spec/nanoc/regressions/gh_795_spec.rb +2 -0
  388. data/spec/nanoc/regressions/gh_804_spec.rb +7 -5
  389. data/spec/nanoc/regressions/gh_807_spec.rb +2 -0
  390. data/spec/nanoc/regressions/gh_809_spec.rb +2 -0
  391. data/spec/nanoc/regressions/gh_813_spec.rb +2 -0
  392. data/spec/nanoc/regressions/gh_815_spec.rb +2 -0
  393. data/spec/nanoc/regressions/gh_828_spec.rb +2 -0
  394. data/spec/nanoc/regressions/gh_833_spec.rb +2 -0
  395. data/spec/nanoc/regressions/gh_841_spec.rb +2 -0
  396. data/spec/nanoc/regressions/gh_867_spec.rb +2 -0
  397. data/spec/nanoc/regressions/gh_882_spec.rb +2 -0
  398. data/spec/nanoc/regressions/gh_885_spec.rb +2 -0
  399. data/spec/nanoc/regressions/gh_891_spec.rb +2 -0
  400. data/spec/nanoc/regressions/gh_913_spec.rb +2 -0
  401. data/spec/nanoc/regressions/gh_924_spec.rb +58 -56
  402. data/spec/nanoc/regressions/gh_928_spec.rb +2 -0
  403. data/spec/nanoc/regressions/gh_937_spec.rb +7 -5
  404. data/spec/nanoc/regressions/gh_942_spec.rb +2 -0
  405. data/spec/nanoc/regressions/gh_947_spec.rb +2 -0
  406. data/spec/nanoc/regressions/gh_948_spec.rb +2 -0
  407. data/spec/nanoc/regressions/gh_951_spec.rb +2 -0
  408. data/spec/nanoc/regressions/gh_954_spec.rb +14 -12
  409. data/spec/nanoc/regressions/gh_970a_spec.rb +6 -4
  410. data/spec/nanoc/regressions/gh_970b_spec.rb +10 -8
  411. data/spec/nanoc/regressions/gh_974_spec.rb +6 -4
  412. data/spec/nanoc/regressions/gh_981_spec.rb +2 -0
  413. data/spec/nanoc/rule_dsl/action_sequence_calculator_spec.rb +2 -0
  414. data/spec/nanoc/rule_dsl/recording_executor_spec.rb +2 -0
  415. data/spec/nanoc/rule_dsl/rule_context_spec.rb +2 -0
  416. data/spec/nanoc/rule_dsl/rules_collection_spec.rb +2 -0
  417. data/spec/nanoc/spec_spec.rb +2 -0
  418. data/spec/nanoc/telemetry/counter_spec.rb +2 -0
  419. data/spec/nanoc/telemetry/labelled_counter_spec.rb +2 -0
  420. data/spec/nanoc/telemetry/labelled_summary_spec.rb +2 -0
  421. data/spec/nanoc/telemetry/stopwatch_spec.rb +2 -0
  422. data/spec/nanoc/telemetry/summary_spec.rb +2 -0
  423. data/spec/nanoc/telemetry_spec.rb +2 -0
  424. data/spec/regression_filenames_spec.rb +3 -1
  425. data/spec/spec_helper.rb +2 -0
  426. data/test/base/core_ext/array_spec.rb +2 -0
  427. data/test/base/core_ext/hash_spec.rb +2 -0
  428. data/test/base/core_ext/string_spec.rb +2 -0
  429. data/test/base/test_code_snippet.rb +2 -0
  430. data/test/base/test_compiler.rb +2 -0
  431. data/test/base/test_context.rb +2 -0
  432. data/test/base/test_data_source.rb +2 -0
  433. data/test/base/test_dependency_tracker.rb +2 -0
  434. data/test/base/test_directed_graph.rb +2 -0
  435. data/test/base/test_filter.rb +2 -0
  436. data/test/base/test_item.rb +2 -0
  437. data/test/base/test_item_array.rb +2 -0
  438. data/test/base/test_layout.rb +2 -0
  439. data/test/base/test_notification_center.rb +2 -0
  440. data/test/base/test_site.rb +17 -15
  441. data/test/base/test_store.rb +2 -0
  442. data/test/checking/checks/test_css.rb +2 -0
  443. data/test/checking/checks/test_external_links.rb +2 -0
  444. data/test/checking/checks/test_html.rb +2 -0
  445. data/test/checking/checks/test_internal_links.rb +2 -0
  446. data/test/checking/checks/test_mixed_content.rb +2 -0
  447. data/test/checking/checks/test_stale.rb +2 -0
  448. data/test/checking/test_check.rb +2 -0
  449. data/test/checking/test_dsl.rb +2 -0
  450. data/test/checking/test_runner.rb +2 -0
  451. data/test/cli/commands/test_check.rb +2 -0
  452. data/test/cli/commands/test_compile.rb +2 -0
  453. data/test/cli/commands/test_create_site.rb +2 -0
  454. data/test/cli/commands/test_help.rb +2 -0
  455. data/test/cli/commands/test_info.rb +2 -0
  456. data/test/cli/commands/test_prune.rb +2 -0
  457. data/test/cli/test_cleaning_stream.rb +2 -0
  458. data/test/cli/test_cli.rb +16 -14
  459. data/test/cli/test_error_handler.rb +2 -0
  460. data/test/cli/test_logger.rb +2 -0
  461. data/test/data_sources/test_filesystem.rb +2 -0
  462. data/test/data_sources/test_filesystem_tools.rb +2 -0
  463. data/test/deploying/test_fog.rb +2 -0
  464. data/test/deploying/test_git.rb +33 -31
  465. data/test/deploying/test_rsync.rb +2 -0
  466. data/test/extra/core_ext/test_pathname.rb +2 -0
  467. data/test/extra/core_ext/test_time.rb +2 -0
  468. data/test/extra/test_link_collector.rb +2 -0
  469. data/test/extra/test_piper.rb +2 -0
  470. data/test/filters/colorize_syntax/test_coderay.rb +43 -41
  471. data/test/filters/colorize_syntax/test_common.rb +24 -22
  472. data/test/filters/colorize_syntax/test_pygmentize.rb +2 -0
  473. data/test/filters/colorize_syntax/test_pygments.rb +2 -0
  474. data/test/filters/colorize_syntax/test_simon.rb +2 -0
  475. data/test/filters/test_asciidoc.rb +2 -0
  476. data/test/filters/test_bluecloth.rb +2 -0
  477. data/test/filters/test_coffeescript.rb +2 -0
  478. data/test/filters/test_erb.rb +2 -0
  479. data/test/filters/test_erubi.rb +2 -0
  480. data/test/filters/test_erubis.rb +2 -0
  481. data/test/filters/test_haml.rb +2 -0
  482. data/test/filters/test_handlebars.rb +2 -0
  483. data/test/filters/test_kramdown.rb +2 -0
  484. data/test/filters/test_markaby.rb +2 -0
  485. data/test/filters/test_maruku.rb +2 -0
  486. data/test/filters/test_mustache.rb +2 -0
  487. data/test/filters/test_pandoc.rb +2 -0
  488. data/test/filters/test_rainpress.rb +2 -0
  489. data/test/filters/test_rdiscount.rb +2 -0
  490. data/test/filters/test_rdoc.rb +2 -0
  491. data/test/filters/test_redcarpet.rb +2 -0
  492. data/test/filters/test_redcloth.rb +2 -0
  493. data/test/filters/test_relativize_paths.rb +52 -50
  494. data/test/filters/test_rubypants.rb +2 -0
  495. data/test/filters/test_sass.rb +2 -0
  496. data/test/filters/test_slim.rb +26 -0
  497. data/test/filters/test_typogruby.rb +2 -0
  498. data/test/filters/test_uglify_js.rb +2 -0
  499. data/test/filters/test_xsl.rb +64 -62
  500. data/test/filters/test_yui_compressor.rb +2 -0
  501. data/test/helper.rb +20 -13
  502. data/test/helpers/test_blogging.rb +2 -0
  503. data/test/helpers/test_capturing.rb +12 -10
  504. data/test/helpers/test_link_to.rb +2 -0
  505. data/test/helpers/test_xml_sitemap.rb +2 -0
  506. data/test/rule_dsl/test_action_provider.rb +2 -0
  507. data/test/rule_dsl/test_compiler_dsl.rb +42 -40
  508. data/test/rule_dsl/test_rule.rb +2 -0
  509. data/test/rule_dsl/test_rules_collection.rb +2 -0
  510. data/test/test_gem.rb +2 -0
  511. metadata +5 -3
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class Maruku < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class Mustache < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class Pandoc < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class Rainpress < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class RDiscount < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class RDoc < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class Redcarpet < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class RedCloth < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class RelativizePaths < Nanoc::Filter
@@ -104,13 +106,12 @@ module Nanoc::Filters
104
106
  namespaces = namespaces.reduce({}) { |new, (prefix, uri)| new.merge(prefix.to_s => uri) }
105
107
 
106
108
  doc = content =~ /<html[\s>]/ ? klass.parse(content) : klass.fragment(content)
107
- selectors.map { |sel| "descendant-or-self::#{sel}" }.each do |selector|
108
- doc.xpath(selector, namespaces).each do |node|
109
- if node.name == 'comment'
110
- nokogiri_process_comment(node, doc, selectors, namespaces, klass, type)
111
- elsif path_is_relativizable?(node.content)
112
- node.content = relative_path_to(node.content)
113
- end
109
+ selector = selectors.map { |sel| "descendant-or-self::#{sel}" }.join('|')
110
+ doc.xpath(selector, namespaces).each do |node|
111
+ if node.name == 'comment'
112
+ nokogiri_process_comment(node, doc, selectors, namespaces, klass, type)
113
+ elsif path_is_relativizable?(node.content)
114
+ node.content = relative_path_to(node.content)
114
115
  end
115
116
  end
116
117
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class RubyPants < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class Sass < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # @api private
2
4
  class ::Sass::Importers::Filesystem
3
5
  alias _orig_find _find
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class Slim < Nanoc::Filter
@@ -20,7 +22,7 @@ module Nanoc::Filters
20
22
  # Create context
21
23
  context = ::Nanoc::Int::Context.new(assigns)
22
24
 
23
- ::Slim::Template.new(params) { content }.render(context) { assigns[:content] }
25
+ ::Slim::Template.new(filename, params) { content }.render(context) { assigns[:content] }
24
26
  end
25
27
  end
26
28
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class Typogruby < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class UglifyJS < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class XSL < Nanoc::Filter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Filters
2
4
  # @api private
3
5
  class YUICompressor < Nanoc::Filter
data/lib/nanoc/helpers.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Helpers
2
4
  end
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Helpers
2
4
  # @see http://nanoc.ws/doc/reference/helpers/#blogging
3
5
  module Blogging
@@ -50,7 +52,7 @@ module Nanoc::Helpers
50
52
  end
51
53
 
52
54
  def build
53
- buffer = ''
55
+ buffer = String.new
54
56
  xml = Builder::XmlMarkup.new(target: buffer, indent: 2)
55
57
  build_for_feed(xml)
56
58
  buffer
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Helpers
2
4
  # @see http://nanoc.ws/doc/reference/helpers/#breadcrumbs
3
5
  module Breadcrumbs
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Helpers
2
4
  # @see http://nanoc.ws/doc/reference/helpers/#capturing
3
5
  module Capturing
@@ -128,7 +130,7 @@ module Nanoc::Helpers
128
130
  "of the capture, optionally params, and the content) but got #{args.size} instead"
129
131
  end
130
132
 
131
- _erbout = '' # rubocop:disable Lint/UnderscorePrefixedVariableName
133
+ _erbout = String.new # rubocop:disable Lint/UnderscorePrefixedVariableName
132
134
  SetContent.new(name, params, @item).run { _erbout << content }
133
135
  else # Get content
134
136
  if args.size != 2
@@ -155,7 +157,7 @@ module Nanoc::Helpers
155
157
  erbout_addition = erbout[erbout_length..-1]
156
158
 
157
159
  # Remove addition
158
- erbout[erbout_length..-1] = ''
160
+ erbout[erbout_length..-1] = String.new
159
161
 
160
162
  # Depending on how the filter outputs, the result might be a
161
163
  # single string or an array of strings (slim outputs the latter).
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Helpers
2
4
  # @see http://nanoc.ws/doc/reference/helpers/#childparent
3
5
  module ChildParent
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Helpers
2
4
  # @see http://nanoc.ws/doc/reference/helpers/#filtering
3
5
  module Filtering
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Helpers
2
4
  # @see http://nanoc.ws/doc/reference/helpers/#filtering
3
5
  module HTMLEscape
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Helpers
2
4
  # @see http://nanoc.ws/doc/reference/helpers/#linkto
3
5
  module LinkTo
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Helpers
2
4
  # @see http://nanoc.ws/doc/reference/helpers/#rendering
3
5
  module Rendering
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Helpers
2
4
  # @see http://nanoc.ws/doc/reference/helpers/#tagging
3
5
  module Tagging
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Helpers
2
4
  # @see http://nanoc.ws/doc/reference/helpers/#text
3
5
  module Text
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Helpers
2
4
  # @see http://nanoc.ws/doc/reference/helpers/#xmlsitemap
3
5
  module XMLSitemap
@@ -13,7 +15,7 @@ module Nanoc::Helpers
13
15
  select_proc = params.fetch(:rep_select, nil)
14
16
 
15
17
  # Create builder
16
- buffer = ''
18
+ buffer = String.new
17
19
  xml = Builder::XmlMarkup.new(target: buffer, indent: 2)
18
20
 
19
21
  # Check for required attributes
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'rule_dsl/compiler_dsl'
2
4
  require_relative 'rule_dsl/action_provider'
3
5
  require_relative 'rule_dsl/recording_executor'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::RuleDSL
2
4
  class ActionProvider < Nanoc::Int::ActionProvider
3
5
  identifier :rule_dsl
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::RuleDSL
2
4
  # Calculates action sequences for objects that can be run through a rule (item
3
5
  # representations and layouts).
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::RuleDSL
2
4
  # Contains methods that will be executed by the site’s `Rules` file.
3
5
  #
4
6
  # @api private
5
- class CompilerDSL
7
+ class CompilerDSL < Nanoc::Int::Context
6
8
  # The current rules filename.
7
9
  #
8
10
  # @return [String] The current rules filename.
@@ -21,6 +23,7 @@ module Nanoc::RuleDSL
21
23
  def initialize(rules_collection, config)
22
24
  @rules_collection = rules_collection
23
25
  @config = config
26
+ super({ config: config })
24
27
  end
25
28
 
26
29
  # Creates a preprocessor block that will be executed after all data is
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc
2
4
  module RuleDSL
3
5
  class RecordingExecutor
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::RuleDSL
2
4
  # Contains the processing information for a item.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::RuleDSL
2
4
  # Provides a context in which compilation and routing rules can be executed.
3
5
  # It provides access to the item representation that is being compiled or
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::RuleDSL
2
4
  # Keeps track of the rules in a site.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::RuleDSL
2
4
  # @api private
3
5
  class RulesLoader
data/lib/nanoc/spec.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc
2
4
  # @api private
3
5
  module Spec
@@ -11,7 +13,7 @@ module Nanoc
11
13
  def initialize(mod)
12
14
  @mod = mod
13
15
 
14
- @erbout = ''
16
+ @erbout = String.new
15
17
  @action_sequence = {}
16
18
  @config = Nanoc::Int::Configuration.new.with_defaults
17
19
  @reps = Nanoc::Int::ItemRepRepo.new
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc
2
4
  # @api private
3
5
  module Telemetry
@@ -15,3 +17,5 @@ require_relative 'telemetry/labelled_summary'
15
17
 
16
18
  require_relative 'telemetry/registry'
17
19
  require_relative 'telemetry/stopwatch'
20
+
21
+ require_relative 'telemetry/table'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Telemetry
2
4
  class Counter
3
5
  attr_reader :value
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Telemetry
2
4
  class LabelledCounter
3
5
  def initialize
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Telemetry
2
4
  class LabelledSummary
3
5
  def initialize
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Telemetry
2
4
  class Registry
3
5
  def initialize
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Telemetry
2
4
  class Stopwatch
3
5
  attr_reader :duration
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nanoc::Telemetry
2
4
  class Summary
3
5
  class EmptySummaryError < StandardError
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nanoc::Telemetry
4
+ class Table
5
+ def initialize(rows)
6
+ @rows = rows
7
+ end
8
+
9
+ def to_s
10
+ columns = @rows.transpose
11
+ column_lengths = columns.map { |c| c.map(&:size).max }
12
+
13
+ [].tap do |lines|
14
+ lines << row_to_s(@rows[0], column_lengths)
15
+ lines << separator(column_lengths)
16
+ lines.concat(@rows.map { |r| row_to_s(r, column_lengths) })
17
+ end.join("\n")
18
+ end
19
+
20
+ private
21
+
22
+ def row_to_s(row, column_lengths)
23
+ values = row.zip(column_lengths).map { |text, length| text.rjust(length) }
24
+ values[0] + ' │ ' + values[1..-1].join(' ')
25
+ end
26
+
27
+ def separator(column_lengths)
28
+ String.new.tap do |s|
29
+ s << '─' * column_lengths[0]
30
+ s << '─┼─'
31
+ s << column_lengths[1..-1].map { |l| '─' * l }.join('───')
32
+ end
33
+ end
34
+ end
35
+ end