nanoc 4.8.12 → 4.8.13

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 (295) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS.md +6 -0
  3. data/lib/nanoc/base/entities/document.rb +16 -1
  4. data/lib/nanoc/base/feature.rb +1 -1
  5. data/lib/nanoc/base/repos/action_sequence_store.rb +3 -3
  6. data/lib/nanoc/base/repos/checksum_store.rb +3 -3
  7. data/lib/nanoc/base/repos/compiled_content_cache.rb +3 -3
  8. data/lib/nanoc/base/repos/dependency_store.rb +3 -3
  9. data/lib/nanoc/base/repos/outdatedness_store.rb +3 -3
  10. data/lib/nanoc/base/repos/store.rb +3 -5
  11. data/lib/nanoc/base/services/compiler_loader.rb +5 -5
  12. data/lib/nanoc/base/views/mixins/mutable_document_view_mixin.rb +2 -14
  13. data/lib/nanoc/cli/commands/compile.rb +18 -0
  14. data/lib/nanoc/cli/commands/live.rb +1 -0
  15. data/lib/nanoc/cli/commands/view.rb +12 -35
  16. data/lib/nanoc/filters/redcarpet.rb +26 -65
  17. data/lib/nanoc/version.rb +1 -1
  18. metadata +2 -293
  19. data/.rspec +0 -3
  20. data/.rubocop.yml +0 -173
  21. data/Rakefile +0 -25
  22. data/nanoc.gemspec +0 -44
  23. data/nanoc.manifest +0 -543
  24. data/spec/contributors_spec.rb +0 -20
  25. data/spec/gem_spec.rb +0 -21
  26. data/spec/manifest_spec.rb +0 -22
  27. data/spec/nanoc/base/changes_stream_spec.rb +0 -45
  28. data/spec/nanoc/base/checksummer_spec.rb +0 -419
  29. data/spec/nanoc/base/compiler_spec.rb +0 -149
  30. data/spec/nanoc/base/core_ext/array_spec.rb +0 -35
  31. data/spec/nanoc/base/core_ext/hash_spec.rb +0 -41
  32. data/spec/nanoc/base/core_ext/string_spec.rb +0 -23
  33. data/spec/nanoc/base/directed_graph_spec.rb +0 -258
  34. data/spec/nanoc/base/entities/action_sequence_spec.rb +0 -297
  35. data/spec/nanoc/base/entities/code_snippet_spec.rb +0 -60
  36. data/spec/nanoc/base/entities/configuration_spec.rb +0 -132
  37. data/spec/nanoc/base/entities/content_spec.rb +0 -195
  38. data/spec/nanoc/base/entities/context_spec.rb +0 -26
  39. data/spec/nanoc/base/entities/document_spec.rb +0 -258
  40. data/spec/nanoc/base/entities/identifiable_collection_spec.rb +0 -209
  41. data/spec/nanoc/base/entities/identifier_spec.rb +0 -472
  42. data/spec/nanoc/base/entities/item_rep_spec.rb +0 -26
  43. data/spec/nanoc/base/entities/item_spec.rb +0 -13
  44. data/spec/nanoc/base/entities/layout_spec.rb +0 -13
  45. data/spec/nanoc/base/entities/lazy_value_spec.rb +0 -108
  46. data/spec/nanoc/base/entities/outdatedness_status_spec.rb +0 -115
  47. data/spec/nanoc/base/entities/pattern_spec.rb +0 -133
  48. data/spec/nanoc/base/entities/processing_action_spec.rb +0 -11
  49. data/spec/nanoc/base/entities/processing_actions/filter_spec.rb +0 -20
  50. data/spec/nanoc/base/entities/processing_actions/layout_spec.rb +0 -20
  51. data/spec/nanoc/base/entities/processing_actions/snapshot_spec.rb +0 -40
  52. data/spec/nanoc/base/entities/props_spec.rb +0 -413
  53. data/spec/nanoc/base/entities/site_spec.rb +0 -80
  54. data/spec/nanoc/base/errors/dependency_cycle_spec.rb +0 -35
  55. data/spec/nanoc/base/feature_spec.rb +0 -109
  56. data/spec/nanoc/base/filter_spec.rb +0 -166
  57. data/spec/nanoc/base/item_rep_writer_spec.rb +0 -140
  58. data/spec/nanoc/base/memoization_spec.rb +0 -108
  59. data/spec/nanoc/base/repos/aggregate_data_source_spec.rb +0 -87
  60. data/spec/nanoc/base/repos/checksum_store_spec.rb +0 -155
  61. data/spec/nanoc/base/repos/compiled_content_cache_spec.rb +0 -65
  62. data/spec/nanoc/base/repos/config_loader_spec.rb +0 -245
  63. data/spec/nanoc/base/repos/data_source_spec.rb +0 -95
  64. data/spec/nanoc/base/repos/dependency_store_spec.rb +0 -515
  65. data/spec/nanoc/base/repos/in_mem_data_source_spec.rb +0 -39
  66. data/spec/nanoc/base/repos/outdatedness_store_spec.rb +0 -72
  67. data/spec/nanoc/base/repos/prefixed_data_source_spec.rb +0 -39
  68. data/spec/nanoc/base/repos/site_loader_spec.rb +0 -264
  69. data/spec/nanoc/base/repos/snapshot_repo_spec.rb +0 -316
  70. data/spec/nanoc/base/repos/store_spec.rb +0 -93
  71. data/spec/nanoc/base/services/compiler/phases/abstract_spec.rb +0 -63
  72. data/spec/nanoc/base/services/compiler/phases/cache_spec.rb +0 -156
  73. data/spec/nanoc/base/services/compiler/stages/calculate_checksums_spec.rb +0 -74
  74. data/spec/nanoc/base/services/compiler/stages/cleanup_spec.rb +0 -88
  75. data/spec/nanoc/base/services/compiler/stages/compile_reps_spec.rb +0 -142
  76. data/spec/nanoc/base/services/compiler/stages/determine_outdatedness_spec.rb +0 -148
  77. data/spec/nanoc/base/services/compiler/stages/preprocess_spec.rb +0 -110
  78. data/spec/nanoc/base/services/dependency_tracker_spec.rb +0 -245
  79. data/spec/nanoc/base/services/executor_spec.rb +0 -686
  80. data/spec/nanoc/base/services/item_rep_router_spec.rb +0 -198
  81. data/spec/nanoc/base/services/item_rep_selector_spec.rb +0 -227
  82. data/spec/nanoc/base/services/notification_center_spec.rb +0 -25
  83. data/spec/nanoc/base/services/outdatedness_checker_spec.rb +0 -778
  84. data/spec/nanoc/base/services/outdatedness_rules_spec.rb +0 -495
  85. data/spec/nanoc/base/services/pruner_spec.rb +0 -116
  86. data/spec/nanoc/base/services/temp_filename_factory_spec.rb +0 -89
  87. data/spec/nanoc/base/views/basic_item_rep_collection_view_spec.rb +0 -8
  88. data/spec/nanoc/base/views/basic_item_rep_view_spec.rb +0 -9
  89. data/spec/nanoc/base/views/compilation_item_rep_collection_view_spec.rb +0 -8
  90. data/spec/nanoc/base/views/compilation_item_rep_view_spec.rb +0 -136
  91. data/spec/nanoc/base/views/config_view_spec.rb +0 -144
  92. data/spec/nanoc/base/views/item_collection_with_reps_view_spec.rb +0 -23
  93. data/spec/nanoc/base/views/item_collection_without_reps_view_spec.rb +0 -23
  94. data/spec/nanoc/base/views/item_view_spec.rb +0 -376
  95. data/spec/nanoc/base/views/layout_collection_view_spec.rb +0 -23
  96. data/spec/nanoc/base/views/layout_view_spec.rb +0 -18
  97. data/spec/nanoc/base/views/mutable_config_view_spec.rb +0 -18
  98. data/spec/nanoc/base/views/mutable_item_collection_view_spec.rb +0 -60
  99. data/spec/nanoc/base/views/mutable_item_view_spec.rb +0 -26
  100. data/spec/nanoc/base/views/mutable_layout_collection_view_spec.rb +0 -60
  101. data/spec/nanoc/base/views/mutable_layout_view_spec.rb +0 -17
  102. data/spec/nanoc/base/views/post_compile_item_rep_collection_view_spec.rb +0 -8
  103. data/spec/nanoc/base/views/post_compile_item_rep_view_spec.rb +0 -216
  104. data/spec/nanoc/base/views/post_compile_item_view_spec.rb +0 -58
  105. data/spec/nanoc/base/views/support/document_view_examples.rb +0 -340
  106. data/spec/nanoc/base/views/support/identifiable_collection_view_examples.rb +0 -277
  107. data/spec/nanoc/base/views/support/item_rep_collection_view_examples.rb +0 -140
  108. data/spec/nanoc/base/views/support/item_rep_view_examples.rb +0 -308
  109. data/spec/nanoc/base/views/support/mutable_document_view_examples.rb +0 -188
  110. data/spec/nanoc/base/views/support/mutable_identifiable_collection_view_examples.rb +0 -44
  111. data/spec/nanoc/checking/runner_spec.rb +0 -26
  112. data/spec/nanoc/cli/command_runner_spec.rb +0 -107
  113. data/spec/nanoc/cli/commands/compile/abstract_spec.rb +0 -80
  114. data/spec/nanoc/cli/commands/compile/diff_generator_spec.rb +0 -44
  115. data/spec/nanoc/cli/commands/compile/file_action_printer_spec.rb +0 -112
  116. data/spec/nanoc/cli/commands/compile/timing_recorder_spec.rb +0 -287
  117. data/spec/nanoc/cli/commands/compile_spec.rb +0 -45
  118. data/spec/nanoc/cli/commands/deploy_spec.rb +0 -329
  119. data/spec/nanoc/cli/commands/shell_spec.rb +0 -77
  120. data/spec/nanoc/cli/commands/show_data_spec.rb +0 -286
  121. data/spec/nanoc/cli/commands/show_plugins_spec.rb +0 -20
  122. data/spec/nanoc/cli/commands/show_rules_spec.rb +0 -118
  123. data/spec/nanoc/cli/commands/view_spec.rb +0 -75
  124. data/spec/nanoc/cli/error_handler_spec.rb +0 -43
  125. data/spec/nanoc/cli/stack_trace_writer_spec.rb +0 -156
  126. data/spec/nanoc/cli/stream_cleaners/utf8_spec.rb +0 -9
  127. data/spec/nanoc/cli_spec.rb +0 -44
  128. data/spec/nanoc/data_sources/filesystem_spec.rb +0 -128
  129. data/spec/nanoc/deploying/fog_spec.rb +0 -199
  130. data/spec/nanoc/deploying/git_spec.rb +0 -305
  131. data/spec/nanoc/extra/live_recompiler_spec.rb +0 -129
  132. data/spec/nanoc/extra/parallel_collection_spec.rb +0 -110
  133. data/spec/nanoc/filters/asciidoctor_spec.rb +0 -12
  134. data/spec/nanoc/filters/colorize_syntax/rouge_spec.rb +0 -155
  135. data/spec/nanoc/filters/less_spec.rb +0 -122
  136. data/spec/nanoc/helpers/blogging_spec.rb +0 -219
  137. data/spec/nanoc/helpers/breadcrumbs_spec.rb +0 -135
  138. data/spec/nanoc/helpers/capturing_spec.rb +0 -256
  139. data/spec/nanoc/helpers/child_parent_spec.rb +0 -76
  140. data/spec/nanoc/helpers/filtering_spec.rb +0 -77
  141. data/spec/nanoc/helpers/html_escape_spec.rb +0 -37
  142. data/spec/nanoc/helpers/link_to_spec.rb +0 -320
  143. data/spec/nanoc/helpers/rendering_spec.rb +0 -144
  144. data/spec/nanoc/helpers/tagging_spec.rb +0 -106
  145. data/spec/nanoc/helpers/text_spec.rb +0 -60
  146. data/spec/nanoc/integration/compile_command_spec.rb +0 -33
  147. data/spec/nanoc/integration/outdatedness_integration_spec.rb +0 -269
  148. data/spec/nanoc/integration/partial_recompilation_spec.rb +0 -50
  149. data/spec/nanoc/regressions/gh_1015_spec.rb +0 -19
  150. data/spec/nanoc/regressions/gh_1022_spec.rb +0 -26
  151. data/spec/nanoc/regressions/gh_1031_spec.rb +0 -56
  152. data/spec/nanoc/regressions/gh_1035_spec.rb +0 -35
  153. data/spec/nanoc/regressions/gh_1037a_spec.rb +0 -31
  154. data/spec/nanoc/regressions/gh_1037b_spec.rb +0 -20
  155. data/spec/nanoc/regressions/gh_1040_spec.rb +0 -24
  156. data/spec/nanoc/regressions/gh_1045_spec.rb +0 -50
  157. data/spec/nanoc/regressions/gh_1047_spec.rb +0 -30
  158. data/spec/nanoc/regressions/gh_1064_spec.rb +0 -20
  159. data/spec/nanoc/regressions/gh_1067_spec.rb +0 -36
  160. data/spec/nanoc/regressions/gh_1082a_spec.rb +0 -20
  161. data/spec/nanoc/regressions/gh_1082b_spec.rb +0 -22
  162. data/spec/nanoc/regressions/gh_1082c_spec.rb +0 -21
  163. data/spec/nanoc/regressions/gh_1082d_spec.rb +0 -19
  164. data/spec/nanoc/regressions/gh_1093_spec.rb +0 -51
  165. data/spec/nanoc/regressions/gh_1094_spec.rb +0 -24
  166. data/spec/nanoc/regressions/gh_1097_spec.rb +0 -23
  167. data/spec/nanoc/regressions/gh_1100_spec.rb +0 -22
  168. data/spec/nanoc/regressions/gh_1102_spec.rb +0 -28
  169. data/spec/nanoc/regressions/gh_1107_spec.rb +0 -15
  170. data/spec/nanoc/regressions/gh_1130_spec.rb +0 -21
  171. data/spec/nanoc/regressions/gh_1134_spec.rb +0 -29
  172. data/spec/nanoc/regressions/gh_1145_spec.rb +0 -18
  173. data/spec/nanoc/regressions/gh_1171_spec.rb +0 -57
  174. data/spec/nanoc/regressions/gh_1185_spec.rb +0 -22
  175. data/spec/nanoc/regressions/gh_1216_spec.rb +0 -91
  176. data/spec/nanoc/regressions/gh_1248_spec.rb +0 -24
  177. data/spec/nanoc/regressions/gh_761_spec.rb +0 -25
  178. data/spec/nanoc/regressions/gh_767_spec.rb +0 -21
  179. data/spec/nanoc/regressions/gh_769_spec.rb +0 -32
  180. data/spec/nanoc/regressions/gh_776_spec.rb +0 -42
  181. data/spec/nanoc/regressions/gh_787_spec.rb +0 -21
  182. data/spec/nanoc/regressions/gh_795_spec.rb +0 -21
  183. data/spec/nanoc/regressions/gh_804_spec.rb +0 -28
  184. data/spec/nanoc/regressions/gh_807_spec.rb +0 -19
  185. data/spec/nanoc/regressions/gh_809_spec.rb +0 -19
  186. data/spec/nanoc/regressions/gh_813_spec.rb +0 -24
  187. data/spec/nanoc/regressions/gh_815_spec.rb +0 -20
  188. data/spec/nanoc/regressions/gh_828_spec.rb +0 -25
  189. data/spec/nanoc/regressions/gh_833_spec.rb +0 -16
  190. data/spec/nanoc/regressions/gh_841_spec.rb +0 -17
  191. data/spec/nanoc/regressions/gh_867_spec.rb +0 -17
  192. data/spec/nanoc/regressions/gh_882_spec.rb +0 -31
  193. data/spec/nanoc/regressions/gh_885_spec.rb +0 -32
  194. data/spec/nanoc/regressions/gh_891_spec.rb +0 -28
  195. data/spec/nanoc/regressions/gh_913_spec.rb +0 -26
  196. data/spec/nanoc/regressions/gh_924_spec.rb +0 -91
  197. data/spec/nanoc/regressions/gh_928_spec.rb +0 -7
  198. data/spec/nanoc/regressions/gh_937_spec.rb +0 -27
  199. data/spec/nanoc/regressions/gh_942_spec.rb +0 -23
  200. data/spec/nanoc/regressions/gh_947_spec.rb +0 -23
  201. data/spec/nanoc/regressions/gh_948_spec.rb +0 -18
  202. data/spec/nanoc/regressions/gh_951_spec.rb +0 -21
  203. data/spec/nanoc/regressions/gh_954_spec.rb +0 -35
  204. data/spec/nanoc/regressions/gh_970a_spec.rb +0 -19
  205. data/spec/nanoc/regressions/gh_970b_spec.rb +0 -52
  206. data/spec/nanoc/regressions/gh_974_spec.rb +0 -19
  207. data/spec/nanoc/regressions/gh_981_spec.rb +0 -23
  208. data/spec/nanoc/rule_dsl/action_sequence_calculator_spec.rb +0 -230
  209. data/spec/nanoc/rule_dsl/recording_executor_spec.rb +0 -145
  210. data/spec/nanoc/rule_dsl/rule_context_spec.rb +0 -251
  211. data/spec/nanoc/rule_dsl/rule_spec.rb +0 -111
  212. data/spec/nanoc/rule_dsl/rules_collection_spec.rb +0 -301
  213. data/spec/nanoc/spec_spec.rb +0 -70
  214. data/spec/nanoc/telemetry/counter_spec.rb +0 -20
  215. data/spec/nanoc/telemetry/labelled_counter_spec.rb +0 -94
  216. data/spec/nanoc/telemetry/labelled_summary_spec.rb +0 -78
  217. data/spec/nanoc/telemetry/stopwatch_spec.rb +0 -63
  218. data/spec/nanoc/telemetry/summary_spec.rb +0 -68
  219. data/spec/nanoc/telemetry/table_spec.rb +0 -22
  220. data/spec/nanoc/telemetry_spec.rb +0 -28
  221. data/spec/regression_filenames_spec.rb +0 -18
  222. data/spec/spec_helper.rb +0 -371
  223. data/test/base/test_compiler.rb +0 -389
  224. data/test/base/test_filter.rb +0 -73
  225. data/test/base/test_site.rb +0 -146
  226. data/test/checking/checks/test_css.rb +0 -66
  227. data/test/checking/checks/test_external_links.rb +0 -88
  228. data/test/checking/checks/test_html.rb +0 -47
  229. data/test/checking/checks/test_internal_links.rb +0 -118
  230. data/test/checking/checks/test_mixed_content.rb +0 -190
  231. data/test/checking/checks/test_stale.rb +0 -69
  232. data/test/checking/test_check.rb +0 -22
  233. data/test/checking/test_dsl.rb +0 -35
  234. data/test/checking/test_runner.rb +0 -45
  235. data/test/cli/commands/test_check.rb +0 -20
  236. data/test/cli/commands/test_compile.rb +0 -199
  237. data/test/cli/commands/test_create_site.rb +0 -126
  238. data/test/cli/commands/test_help.rb +0 -10
  239. data/test/cli/commands/test_prune.rb +0 -157
  240. data/test/cli/test_cleaning_stream.rb +0 -97
  241. data/test/cli/test_cli.rb +0 -195
  242. data/test/cli/test_error_handler.rb +0 -102
  243. data/test/cli/test_logger.rb +0 -7
  244. data/test/data_sources/test_filesystem.rb +0 -1033
  245. data/test/data_sources/test_filesystem_tools.rb +0 -146
  246. data/test/deploying/test_fog.rb +0 -117
  247. data/test/deploying/test_git.rb +0 -263
  248. data/test/deploying/test_rsync.rb +0 -94
  249. data/test/extra/core_ext/test_time.rb +0 -17
  250. data/test/extra/test_link_collector.rb +0 -110
  251. data/test/extra/test_piper.rb +0 -48
  252. data/test/filters/colorize_syntax/test_coderay.rb +0 -247
  253. data/test/filters/colorize_syntax/test_common.rb +0 -109
  254. data/test/filters/colorize_syntax/test_pygmentize.rb +0 -39
  255. data/test/filters/colorize_syntax/test_pygments.rb +0 -21
  256. data/test/filters/colorize_syntax/test_simon.rb +0 -24
  257. data/test/filters/test_asciidoc.rb +0 -16
  258. data/test/filters/test_bluecloth.rb +0 -16
  259. data/test/filters/test_coffeescript.rb +0 -16
  260. data/test/filters/test_erb.rb +0 -107
  261. data/test/filters/test_erubi.rb +0 -75
  262. data/test/filters/test_erubis.rb +0 -76
  263. data/test/filters/test_haml.rb +0 -94
  264. data/test/filters/test_handlebars.rb +0 -61
  265. data/test/filters/test_kramdown.rb +0 -56
  266. data/test/filters/test_markaby.rb +0 -16
  267. data/test/filters/test_maruku.rb +0 -16
  268. data/test/filters/test_mustache.rb +0 -43
  269. data/test/filters/test_pandoc.rb +0 -47
  270. data/test/filters/test_rainpress.rb +0 -27
  271. data/test/filters/test_rdiscount.rb +0 -30
  272. data/test/filters/test_rdoc.rb +0 -14
  273. data/test/filters/test_redcarpet.rb +0 -111
  274. data/test/filters/test_redcloth.rb +0 -31
  275. data/test/filters/test_relativize_paths.rb +0 -887
  276. data/test/filters/test_rubypants.rb +0 -16
  277. data/test/filters/test_sass.rb +0 -315
  278. data/test/filters/test_slim.rb +0 -59
  279. data/test/filters/test_typogruby.rb +0 -18
  280. data/test/filters/test_uglify_js.rb +0 -30
  281. data/test/filters/test_xsl.rb +0 -192
  282. data/test/filters/test_yui_compressor.rb +0 -42
  283. data/test/fixtures/vcr_cassettes/css_run_error.yml +0 -70
  284. data/test/fixtures/vcr_cassettes/css_run_ok.yml +0 -60
  285. data/test/fixtures/vcr_cassettes/css_run_parse_error.yml +0 -70
  286. data/test/fixtures/vcr_cassettes/html_run_error.yml +0 -56
  287. data/test/fixtures/vcr_cassettes/html_run_ok.yml +0 -58
  288. data/test/helper.rb +0 -255
  289. data/test/helpers/test_blogging.rb +0 -684
  290. data/test/helpers/test_capturing.rb +0 -184
  291. data/test/helpers/test_link_to.rb +0 -57
  292. data/test/helpers/test_xml_sitemap.rb +0 -246
  293. data/test/rule_dsl/test_action_provider.rb +0 -80
  294. data/test/rule_dsl/test_compiler_dsl.rb +0 -448
  295. data/test/rule_dsl/test_rules_collection.rb +0 -93
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e5cc17f8346af531417d26173e8610348080326f2f9faceb6485e19d9fc9c194
4
- data.tar.gz: 2e9ebdd0c7da3bb1d4119b4dc8ca51dc840b66ff191af0336a88da006b5af8f4
3
+ metadata.gz: b1fd7ed8596d83be40be2bcfc0e6133dbda0fa89f71ab9d8e04ba2250873bc1f
4
+ data.tar.gz: 9f03533a81092eed23196203db3420e0f12d00afe55c069af5cde66b4ddf3497
5
5
  SHA512:
6
- metadata.gz: d3674db085f03b8a75de0c39c202c69769b77317a830eb3ffb8164e14959842270e16c8cc153f1e8de75ba1e35a6c23e6c410a35a459873173664a71829b9373
7
- data.tar.gz: 650b49e7c74857d1d2dfd3fe16edd60005a0a47cd06799cc894813896edf406560f8712063959f94993d40bdaf7bf308a382f5c165a12d9d96a1759b9b7ea3fa
6
+ metadata.gz: d6cb159b049f179d74e3db094260ac6d382b2c9904a2f3344e77ab77116820e7aaacbe7f16fb01ff3fb34cb3204612f6bd1b259cb5aa2e8c463beb34ad3fa582
7
+ data.tar.gz: 30a00c3a821c24368f3348f983e07045887d221f297f49e26e5e02f928d70732a8e314ebdd2a722b0648333867623639581ff42414ce70cdf1bcddc723a773fe
data/NEWS.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Nanoc news
2
2
 
3
+ ## 4.8.13 (2017-11-16)
4
+
5
+ Enhancements:
6
+
7
+ * Added `-L`/`--live-reload` option to `nanoc view` (#1251)
8
+
3
9
  ## 4.8.12 (2017-11-16)
4
10
 
5
11
  Fixes:
@@ -7,7 +7,7 @@ module Nanoc
7
7
  include Nanoc::Int::ContractsSupport
8
8
 
9
9
  # @return [Nanoc::Int::Content]
10
- attr_accessor :content
10
+ attr_reader :content
11
11
 
12
12
  # @return [Hash]
13
13
  def attributes
@@ -86,6 +86,21 @@ module Nanoc
86
86
  @identifier = Nanoc::Identifier.from(new_identifier)
87
87
  end
88
88
 
89
+ contract Nanoc::Int::Content => C::Any
90
+ def content=(new_content)
91
+ @content = new_content
92
+
93
+ @checksum_data = nil
94
+ @content_checksum_data = nil
95
+ end
96
+
97
+ def set_attribute(key, value)
98
+ attributes[key] = value
99
+
100
+ @checksum_data = nil
101
+ @attributes_checksum_data = nil
102
+ end
103
+
89
104
  contract C::None => String
90
105
  def inspect
91
106
  "<#{self.class} identifier=\"#{identifier}\">"
@@ -6,7 +6,7 @@ module Nanoc
6
6
  # @example Defining a feature and checking its enabledness
7
7
  #
8
8
  # Nanoc::Feature.define('environments', version: '4.3')
9
- # Nanoc::Feaure.enabled?(Nanoc::Feature::ENVIRONMENTS)
9
+ # Nanoc::Feature.enabled?(Nanoc::Feature::ENVIRONMENTS)
10
10
  #
11
11
  module Feature
12
12
  # Defines a new feature with the given name, experimental in the given
@@ -8,9 +8,9 @@ module Nanoc::Int
8
8
  class ActionSequenceStore < ::Nanoc::Int::Store
9
9
  include Nanoc::Int::ContractsSupport
10
10
 
11
- contract C::KeywordArgs[site: Nanoc::Int::Site] => C::Any
12
- def initialize(site:)
13
- super(Nanoc::Int::Store.tmp_path_for(site: site, store_name: 'rule_memory'), 1)
11
+ contract C::KeywordArgs[config: Nanoc::Int::Configuration] => C::Any
12
+ def initialize(config:)
13
+ super(Nanoc::Int::Store.tmp_path_for(config: config, store_name: 'rule_memory'), 1)
14
14
 
15
15
  @action_sequences = {}
16
16
  end
@@ -13,9 +13,9 @@ module Nanoc::Int
13
13
 
14
14
  c_obj = C::Or[Nanoc::Int::Item, Nanoc::Int::Layout, Nanoc::Int::Configuration, Nanoc::Int::CodeSnippet]
15
15
 
16
- contract C::KeywordArgs[site: C::Maybe[Nanoc::Int::Site], objects: C::IterOf[c_obj]] => C::Any
17
- def initialize(site: nil, objects:)
18
- super(Nanoc::Int::Store.tmp_path_for(site: site, store_name: 'checksums'), 2)
16
+ contract C::KeywordArgs[config: Nanoc::Int::Configuration, objects: C::IterOf[c_obj]] => C::Any
17
+ def initialize(config:, objects:)
18
+ super(Nanoc::Int::Store.tmp_path_for(config: config, store_name: 'checksums'), 2)
19
19
 
20
20
  @objects = objects
21
21
 
@@ -8,9 +8,9 @@ module Nanoc::Int
8
8
  class CompiledContentCache < ::Nanoc::Int::Store
9
9
  include Nanoc::Int::ContractsSupport
10
10
 
11
- contract C::KeywordArgs[site: Nanoc::Int::Site, items: C::IterOf[Nanoc::Int::Item]] => C::Any
12
- def initialize(site:, items:)
13
- super(Nanoc::Int::Store.tmp_path_for(site: site, store_name: 'compiled_content'), 2)
11
+ contract C::KeywordArgs[config: Nanoc::Int::Configuration, items: C::IterOf[Nanoc::Int::Item]] => C::Any
12
+ def initialize(config:, items:)
13
+ super(Nanoc::Int::Store.tmp_path_for(config: config, store_name: 'compiled_content'), 2)
14
14
 
15
15
  @items = items
16
16
  @cache = {}
@@ -8,9 +8,9 @@ module Nanoc::Int
8
8
  attr_reader :items
9
9
  attr_reader :layouts
10
10
 
11
- contract Nanoc::Int::ItemCollection, Nanoc::Int::LayoutCollection, Nanoc::Int::Configuration, C::KeywordArgs[site: C::Optional[C::Maybe[Nanoc::Int::Site]]] => C::Any
12
- def initialize(items, layouts, config, site: nil)
13
- super(Nanoc::Int::Store.tmp_path_for(site: site, store_name: 'dependencies'), 5)
11
+ contract Nanoc::Int::ItemCollection, Nanoc::Int::LayoutCollection, Nanoc::Int::Configuration => C::Any
12
+ def initialize(items, layouts, config)
13
+ super(Nanoc::Int::Store.tmp_path_for(config: config, store_name: 'dependencies'), 5)
14
14
 
15
15
  @items = items
16
16
  @layouts = layouts
@@ -5,9 +5,9 @@ module Nanoc::Int
5
5
  class OutdatednessStore < ::Nanoc::Int::Store
6
6
  include Nanoc::Int::ContractsSupport
7
7
 
8
- contract C::KeywordArgs[site: C::Maybe[Nanoc::Int::Site]] => C::Any
9
- def initialize(site: nil)
10
- super(Nanoc::Int::Store.tmp_path_for(site: site, store_name: 'outdatedness'), 1)
8
+ contract C::KeywordArgs[config: Nanoc::Int::Configuration] => C::Any
9
+ def initialize(config:)
10
+ super(Nanoc::Int::Store.tmp_path_for(config: config, store_name: 'outdatedness'), 1)
11
11
 
12
12
  @outdated_refs = Set.new
13
13
  end
@@ -40,11 +40,9 @@ module Nanoc::Int
40
40
 
41
41
  # Logic for building tmp path from active environment and store name
42
42
  # @api private
43
- contract C::KeywordArgs[site: C::Maybe[Nanoc::Int::Site], store_name: String] => String
44
- def self.tmp_path_for(store_name:, site:)
45
- # FIXME: disallow site from being nil
46
- output_dir = site ? site.config.output_dir : ''
47
- File.join(tmp_path_prefix(output_dir), store_name)
43
+ contract C::KeywordArgs[config: Nanoc::Int::Configuration, store_name: String] => String
44
+ def self.tmp_path_for(store_name:, config:)
45
+ File.join(tmp_path_prefix(config.output_dir), store_name)
48
46
  end
49
47
 
50
48
  def self.tmp_path_prefix(output_dir)
@@ -4,24 +4,24 @@ module Nanoc::Int
4
4
  # @api private
5
5
  class CompilerLoader
6
6
  def load(site, action_provider: nil)
7
- action_sequence_store = Nanoc::Int::ActionSequenceStore.new(site: site)
7
+ action_sequence_store = Nanoc::Int::ActionSequenceStore.new(config: site.config)
8
8
 
9
9
  dependency_store =
10
- Nanoc::Int::DependencyStore.new(site.items, site.layouts, site.config, site: site)
10
+ Nanoc::Int::DependencyStore.new(site.items, site.layouts, site.config)
11
11
 
12
12
  objects = site.items.to_a + site.layouts.to_a + site.code_snippets + [site.config]
13
13
 
14
14
  checksum_store =
15
- Nanoc::Int::ChecksumStore.new(site: site, objects: objects)
15
+ Nanoc::Int::ChecksumStore.new(config: site.config, objects: objects)
16
16
 
17
17
  action_provider ||= Nanoc::Int::ActionProvider.named(:rule_dsl).for(site)
18
18
 
19
19
  outdatedness_store =
20
- Nanoc::Int::OutdatednessStore.new(site: site)
20
+ Nanoc::Int::OutdatednessStore.new(config: site.config)
21
21
 
22
22
  compiled_content_cache =
23
23
  Nanoc::Int::CompiledContentCache.new(
24
- site: site,
24
+ config: site.config,
25
25
  items: site.items,
26
26
  )
27
27
 
@@ -16,10 +16,6 @@ module Nanoc
16
16
  end
17
17
 
18
18
  def raw_content=(arg)
19
- # FIXME: clearing checksum data should be done in the document
20
- unwrap.checksum_data = nil
21
- unwrap.content_checksum_data = nil
22
-
23
19
  unwrap.content = Nanoc::Int::Content.create(arg)
24
20
  end
25
21
 
@@ -29,10 +25,6 @@ module Nanoc
29
25
  #
30
26
  # @see Hash#[]=
31
27
  def []=(key, value)
32
- # FIXME: clearing checksum data should be done in the document
33
- unwrap.checksum_data = nil
34
- unwrap.attributes_checksum_data = nil
35
-
36
28
  disallowed_value_classes = Set.new([
37
29
  Nanoc::Int::Item,
38
30
  Nanoc::Int::Layout,
@@ -43,7 +35,7 @@ module Nanoc
43
35
  raise DisallowedAttributeValueError.new(value)
44
36
  end
45
37
 
46
- unwrap.attributes[key] = value
38
+ unwrap.set_attribute(key, value)
47
39
  end
48
40
 
49
41
  # Sets the identifier to the given argument.
@@ -59,11 +51,7 @@ module Nanoc
59
51
  #
60
52
  # @return [self]
61
53
  def update_attributes(hash)
62
- # FIXME: clearing checksum data should be done in the document
63
- unwrap.checksum_data = nil
64
- unwrap.attributes_checksum_data = nil
65
-
66
- hash.each { |k, v| unwrap.attributes[k] = v }
54
+ hash.each { |k, v| unwrap.set_attribute(k, v) }
67
55
  self
68
56
  end
69
57
  end
@@ -5,13 +5,31 @@ summary 'compile items of this site'
5
5
  description <<~EOS
6
6
  Compile all items of the current site.
7
7
  EOS
8
+
8
9
  flag nil, :diff, 'generate diff'
10
+ if Nanoc::Feature.enabled?(Nanoc::Feature::LIVE_CMD)
11
+ flag :w, :watch, 'watch for changes and recompile when needed'
12
+ end
9
13
 
10
14
  module Nanoc::CLI::Commands
11
15
  class Compile < ::Nanoc::CLI::CommandRunner
12
16
  attr_accessor :listener_classes
13
17
 
14
18
  def run
19
+ self.class.enter_site_dir
20
+
21
+ if options[:watch]
22
+ run_repeat
23
+ else
24
+ run_once
25
+ end
26
+ end
27
+
28
+ def run_repeat
29
+ Nanoc::Extra::LiveRecompiler.new(command_runner: self).run
30
+ end
31
+
32
+ def run_once
15
33
  time_before = Time.now
16
34
 
17
35
  @site = load_site
@@ -11,6 +11,7 @@ EOS
11
11
  required :H, :handler, 'specify the handler to use (webrick/mongrel/...)'
12
12
  required :o, :host, 'specify the host to listen on (default: 127.0.0.1)'
13
13
  required :p, :port, 'specify the port to listen on (default: 3000)'
14
+ flag :L, :'live-reload', 'reload on changes'
14
15
 
15
16
  module Nanoc::CLI::Commands
16
17
  class Live < ::Nanoc::CLI::CommandRunner
@@ -11,6 +11,7 @@ EOS
11
11
  required :H, :handler, 'specify the handler to use (webrick/mongrel/...)'
12
12
  required :o, :host, 'specify the host to listen on (default: 127.0.0.1)'
13
13
  required :p, :port, 'specify the port to listen on (default: 3000)'
14
+ flag :L, :'live-reload', 'reload on changes'
14
15
 
15
16
  module Nanoc::CLI::Commands
16
17
  class View < ::Nanoc::CLI::CommandRunner
@@ -18,45 +19,21 @@ module Nanoc::CLI::Commands
18
19
 
19
20
  def run
20
21
  load_adsf
21
- require 'rack'
22
+ require 'adsf/live'
22
23
 
23
24
  config = Nanoc::Int::ConfigLoader.new.new_from_cwd
24
25
 
25
- # Set options
26
- options_for_rack = {
27
- Port: (options[:port] || 3000).to_i,
28
- Host: (options[:host] || '127.0.0.1'),
29
- }
26
+ server =
27
+ Adsf::Server.new(
28
+ root: File.absolute_path(config[:output_dir]),
29
+ live: options[:'live-reload'],
30
+ index_filenames: config[:index_filenames],
31
+ host: (options[:host] || '127.0.0.1'),
32
+ port: (options[:port] || 3000).to_i,
33
+ handler: options[:handler],
34
+ )
30
35
 
31
- # Get handler
32
- if options.key?(:handler)
33
- handler = Rack::Handler.get(options[:handler])
34
- else
35
- begin
36
- handler = Rack::Handler.get(DEFAULT_HANDLER_NAME)
37
- rescue LoadError
38
- handler = Rack::Handler::WEBrick
39
- end
40
- end
41
-
42
- # Build app
43
- app = Rack::Builder.new do
44
- use Rack::CommonLogger
45
- use Rack::ShowExceptions
46
- use Rack::Lint
47
- use Rack::Head
48
- use Adsf::Rack::IndexFileFinder,
49
- root: config[:output_dir],
50
- index_filenames: config[:index_filenames]
51
- run Rack::File.new(config[:output_dir])
52
- end.to_app
53
-
54
- # Print a link
55
- url = "http://#{options_for_rack[:Host]}:#{options_for_rack[:Port]}/"
56
- puts "View the site at #{url}"
57
-
58
- # Run autocompiler
59
- handler.run(app, options_for_rack)
36
+ server.run
60
37
  end
61
38
 
62
39
  protected
@@ -7,77 +7,38 @@ module Nanoc::Filters
7
7
 
8
8
  requires 'redcarpet'
9
9
 
10
- # Runs the content through [Redcarpet](https://github.com/vmg/redcarpet).
11
- # This method optionally takes processing options to pass on to Redcarpet.
12
- #
13
- # @overload run(content, params={})
14
- #
15
- # For Redcarpet 1.x
16
- #
17
- # @param [String] content The content to filter
18
- #
19
- # @option params [Array] :options ([]) A list of options to pass on to
20
- # Redcarpet
21
- #
22
- # @return [String] The filtered content
23
- #
24
- # @overload run(content, params={})
25
- #
26
- # For Redcarpet 2.x
27
- #
28
- # @param [String] content The content to filter
29
- #
30
- # @option params [Hash] :options ({}) A list of options to pass on to
31
- # Redcarpet itself (not the renderer)
32
- #
33
- # @option params [::Redcarpet::Render::Base] :renderer
34
- # (::Redcarpet::Render::HTML) The class of the renderer to use
35
- #
36
- # @option params [Hash] :renderer_options ({}) A list of options to pass
37
- # on to the Redcarpet renderer
38
- #
39
- # @option params [Boolean] :with_toc (false) A boolean to request a table
40
- # of contents
41
- #
42
- # @return [String] The filtered content
43
10
  def run(content, params = {})
44
- if ::Redcarpet::VERSION > '2'
45
- options = params.fetch(:options, {})
46
- renderer_class = params.fetch(:renderer, ::Redcarpet::Render::HTML)
47
- renderer_options = params.fetch(:renderer_options, {})
48
- with_toc = params.fetch(:with_toc, false)
49
-
50
- if options.is_a?(Array)
51
- warn 'WARNING: You are passing an array of options to the :redcarpet filter, but Redcarpet 2.x expects a hash instead. This will likely fail.'
52
- end
53
-
54
- # Setup TOC
55
- if with_toc
56
- unless renderer_class <= ::Redcarpet::Render::HTML
57
- raise "Unexpected renderer: #{renderer_class}"
58
- end
59
-
60
- # `with_toc` implies `with_toc_data` for the HTML renderer
61
- renderer_options[:with_toc_data] = true
11
+ options = params.fetch(:options, {})
12
+ renderer_class = params.fetch(:renderer, ::Redcarpet::Render::HTML)
13
+ renderer_options = params.fetch(:renderer_options, {})
14
+ with_toc = params.fetch(:with_toc, false)
15
+
16
+ # Setup TOC
17
+ if with_toc
18
+ unless renderer_class <= ::Redcarpet::Render::HTML
19
+ raise "Unexpected renderer: #{renderer_class}"
62
20
  end
63
21
 
64
- # Create renderer
65
- renderer =
66
- if renderer_class == ::Redcarpet::Render::HTML_TOC
67
- renderer_class.new
68
- else
69
- renderer_class.new(renderer_options)
70
- end
22
+ # `with_toc` implies `with_toc_data` for the HTML renderer
23
+ renderer_options[:with_toc_data] = true
24
+ end
71
25
 
72
- # Render
73
- if with_toc
74
- renderer_toc = ::Redcarpet::Render::HTML_TOC.new
75
- toc = ::Redcarpet::Markdown.new(renderer_toc, options).render(content)
76
- body = ::Redcarpet::Markdown.new(renderer, options).render(content)
77
- toc + body
26
+ # Create renderer
27
+ renderer =
28
+ if renderer_class == ::Redcarpet::Render::HTML_TOC
29
+ renderer_class.new
78
30
  else
79
- ::Redcarpet::Markdown.new(renderer, options).render(content)
31
+ renderer_class.new(renderer_options)
80
32
  end
33
+
34
+ # Render
35
+ if with_toc
36
+ renderer_toc = ::Redcarpet::Render::HTML_TOC.new
37
+ toc = ::Redcarpet::Markdown.new(renderer_toc, options).render(content)
38
+ body = ::Redcarpet::Markdown.new(renderer, options).render(content)
39
+ toc + body
40
+ else
41
+ ::Redcarpet::Markdown.new(renderer, options).render(content)
81
42
  end
82
43
  end
83
44
  end
data/lib/nanoc/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Nanoc
4
4
  # The current Nanoc version.
5
- VERSION = '4.8.12'
5
+ VERSION = '4.8.13'
6
6
  end