nanoc 4.7.5 → 4.7.6

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 (124) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -3
  3. data/Gemfile.lock +18 -13
  4. data/NEWS.md +7 -1
  5. data/Rakefile +2 -2
  6. data/lib/nanoc/base/entities/action_sequence.rb +3 -12
  7. data/lib/nanoc/base/entities/configuration.rb +3 -3
  8. data/lib/nanoc/base/entities/identifiable_collection.rb +2 -4
  9. data/lib/nanoc/base/memoization.rb +1 -0
  10. data/lib/nanoc/base/repos/config_loader.rb +1 -1
  11. data/lib/nanoc/base/services/compilation_context.rb +3 -3
  12. data/lib/nanoc/base/services/compiler.rb +2 -3
  13. data/lib/nanoc/base/services/compiler/stages/cleanup.rb +1 -1
  14. data/lib/nanoc/base/services/filter.rb +4 -12
  15. data/lib/nanoc/base/services/item_rep_router.rb +3 -3
  16. data/lib/nanoc/base/services/outdatedness_checker.rb +1 -2
  17. data/lib/nanoc/base/services/outdatedness_rules/attributes_modified.rb +1 -2
  18. data/lib/nanoc/base/services/outdatedness_rules/code_snippets_modified.rb +1 -2
  19. data/lib/nanoc/base/services/outdatedness_rules/configuration_modified.rb +1 -2
  20. data/lib/nanoc/base/services/outdatedness_rules/paths_modified.rb +5 -5
  21. data/lib/nanoc/base/services/outdatedness_rules/rules_modified.rb +3 -3
  22. data/lib/nanoc/base/services/outdatedness_rules/uses_always_outdated_filter.rb +4 -4
  23. data/lib/nanoc/checking/checks/external_links.rb +0 -2
  24. data/lib/nanoc/cli.rb +1 -1
  25. data/lib/nanoc/cli/commands/compile_listeners/timing_recorder.rb +7 -5
  26. data/lib/nanoc/cli/commands/create-site.rb +1 -1
  27. data/lib/nanoc/cli/commands/nanoc.rb +1 -4
  28. data/lib/nanoc/cli/commands/show-plugins.rb +1 -1
  29. data/lib/nanoc/cli/error_handler.rb +2 -1
  30. data/lib/nanoc/deploying/deployers/git.rb +7 -7
  31. data/lib/nanoc/extra/link_collector.rb +2 -2
  32. data/lib/nanoc/filters/asciidoc.rb +1 -1
  33. data/lib/nanoc/filters/colorize_syntax.rb +46 -19
  34. data/lib/nanoc/filters/relativize_paths.rb +33 -9
  35. data/lib/nanoc/rule_dsl/action_sequence_calculator.rb +15 -7
  36. data/lib/nanoc/version.rb +1 -1
  37. data/nanoc.gemspec +1 -1
  38. data/spec/nanoc/base/checksummer_spec.rb +2 -2
  39. data/spec/nanoc/base/entities/action_sequence_spec.rb +0 -36
  40. data/spec/nanoc/base/entities/identifier_spec.rb +1 -1
  41. data/spec/nanoc/base/entities/outdatedness_status_spec.rb +1 -1
  42. data/spec/nanoc/base/entities/processing_actions/snapshot_spec.rb +1 -1
  43. data/spec/nanoc/base/entities/props_spec.rb +13 -13
  44. data/spec/nanoc/base/memoization_spec.rb +31 -0
  45. data/spec/nanoc/base/services/executor_spec.rb +2 -2
  46. data/spec/nanoc/base/services/item_rep_selector_spec.rb +12 -12
  47. data/spec/nanoc/base/services/outdatedness_checker_spec.rb +23 -23
  48. data/spec/nanoc/base/views/post_compile_item_view_spec.rb +1 -1
  49. data/spec/nanoc/cli/commands/deploy_spec.rb +8 -8
  50. data/spec/nanoc/filters/less_spec.rb +11 -11
  51. data/spec/nanoc/helpers/capturing_spec.rb +2 -2
  52. data/spec/nanoc/helpers/tagging_spec.rb +5 -5
  53. data/spec/nanoc/integration/outdatedness_integration_spec.rb +29 -29
  54. data/spec/nanoc/integration/partial_recompilation_spec.rb +8 -8
  55. data/spec/nanoc/regressions/gh_1015_spec.rb +1 -1
  56. data/spec/nanoc/regressions/gh_1022_spec.rb +1 -1
  57. data/spec/nanoc/regressions/gh_1031_spec.rb +3 -3
  58. data/spec/nanoc/regressions/gh_1035_spec.rb +1 -1
  59. data/spec/nanoc/regressions/gh_1037a_spec.rb +2 -2
  60. data/spec/nanoc/regressions/gh_1037b_spec.rb +1 -1
  61. data/spec/nanoc/regressions/gh_1040_spec.rb +1 -1
  62. data/spec/nanoc/regressions/gh_1045_spec.rb +3 -3
  63. data/spec/nanoc/regressions/gh_1047_spec.rb +3 -3
  64. data/spec/nanoc/regressions/gh_1064_spec.rb +1 -1
  65. data/spec/nanoc/regressions/gh_1067_spec.rb +3 -3
  66. data/spec/nanoc/regressions/gh_1082a_spec.rb +1 -1
  67. data/spec/nanoc/regressions/gh_1082b_spec.rb +1 -1
  68. data/spec/nanoc/regressions/gh_1082c_spec.rb +1 -1
  69. data/spec/nanoc/regressions/gh_1082d_spec.rb +1 -1
  70. data/spec/nanoc/regressions/gh_1093_spec.rb +1 -1
  71. data/spec/nanoc/regressions/gh_1094_spec.rb +1 -1
  72. data/spec/nanoc/regressions/gh_1097_spec.rb +1 -1
  73. data/spec/nanoc/regressions/gh_1100_spec.rb +1 -1
  74. data/spec/nanoc/regressions/gh_1102_spec.rb +3 -3
  75. data/spec/nanoc/regressions/gh_1107_spec.rb +1 -1
  76. data/spec/nanoc/regressions/gh_1130_spec.rb +1 -1
  77. data/spec/nanoc/regressions/gh_1134_spec.rb +2 -2
  78. data/spec/nanoc/regressions/gh_1145_spec.rb +1 -1
  79. data/spec/nanoc/regressions/gh_804_spec.rb +1 -1
  80. data/spec/nanoc/regressions/gh_809_spec.rb +1 -1
  81. data/spec/nanoc/regressions/gh_841_spec.rb +1 -1
  82. data/spec/nanoc/regressions/gh_867_spec.rb +1 -1
  83. data/spec/nanoc/regressions/gh_882_spec.rb +3 -3
  84. data/spec/nanoc/regressions/gh_885_spec.rb +2 -2
  85. data/spec/nanoc/regressions/gh_891_spec.rb +2 -2
  86. data/spec/nanoc/regressions/gh_913_spec.rb +1 -1
  87. data/spec/nanoc/regressions/gh_924_spec.rb +2 -2
  88. data/spec/nanoc/regressions/gh_928_spec.rb +1 -1
  89. data/spec/nanoc/regressions/gh_937_spec.rb +2 -2
  90. data/spec/nanoc/regressions/gh_942_spec.rb +1 -1
  91. data/spec/nanoc/regressions/gh_947_spec.rb +1 -1
  92. data/spec/nanoc/regressions/gh_948_spec.rb +1 -1
  93. data/spec/nanoc/regressions/gh_951_spec.rb +1 -1
  94. data/spec/nanoc/regressions/gh_954_spec.rb +1 -1
  95. data/spec/nanoc/regressions/gh_970a_spec.rb +1 -1
  96. data/spec/nanoc/regressions/gh_970b_spec.rb +7 -7
  97. data/spec/nanoc/regressions/gh_974_spec.rb +1 -1
  98. data/spec/nanoc/regressions/gh_981_spec.rb +3 -3
  99. data/spec/nanoc/rule_dsl/action_sequence_calculator_spec.rb +43 -4
  100. data/test/base/core_ext/array_spec.rb +2 -2
  101. data/test/base/test_compiler.rb +6 -6
  102. data/test/base/test_filter.rb +0 -8
  103. data/test/base/test_site.rb +1 -1
  104. data/test/checking/test_runner.rb +2 -2
  105. data/test/cli/commands/test_check.rb +2 -2
  106. data/test/cli/commands/test_compile.rb +6 -6
  107. data/test/cli/commands/test_create_site.rb +12 -12
  108. data/test/cli/commands/test_help.rb +2 -2
  109. data/test/cli/commands/test_info.rb +1 -1
  110. data/test/cli/commands/test_prune.rb +6 -6
  111. data/test/cli/test_cleaning_stream.rb +1 -1
  112. data/test/cli/test_cli.rb +9 -9
  113. data/test/data_sources/test_filesystem.rb +8 -8
  114. data/test/extra/core_ext/test_pathname.rb +1 -1
  115. data/test/extra/test_link_collector.rb +3 -3
  116. data/test/extra/test_piper.rb +3 -3
  117. data/test/filters/colorize_syntax/test_common.rb +25 -1
  118. data/test/filters/test_relativize_paths.rb +38 -0
  119. data/test/helper.rb +1 -1
  120. data/test/helpers/test_capturing.rb +8 -8
  121. data/test/rule_dsl/test_action_provider.rb +2 -2
  122. data/test/rule_dsl/test_rule.rb +1 -1
  123. data/test/test_gem.rb +1 -1
  124. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ab8752a7ee706e88d3de7f0161673dd839a2edd2
4
- data.tar.gz: 418c19a9d06ab842d45f5ece1b51d98eba42f9b6
3
+ metadata.gz: a40c3389c6ef42f0924566370507dfc3a2e361f8
4
+ data.tar.gz: '09906841a6aa6ba7dc5d4bdc06e5914a4678d274'
5
5
  SHA512:
6
- metadata.gz: 051aa20802e5b97c886dc8b33051af32dac210a78efbae3a1f4595e6c181f49d2f7eda56e502f4d15323963ccf420f7e81a94040e3dac9e9e07ef83f37d56aa1
7
- data.tar.gz: ef1423214832df499234d8320496f67a65f709f1d6eee68fa320b33c458598f921dfc38872e7cf1989e027d7269d7d82679a547c9375b1a0641ed6e88777a3ea
6
+ metadata.gz: 91221955a35dfd5786f068f6fca88f6c3d2ee06cc9ece04e85aedd769c5d66147aec8d37c663c1dcc2e208ce32c38d0939a78d1539dd963f3380fe427d76d854
7
+ data.tar.gz: 4ef5eac2bd6d99bbeb5c1276fa13dd498f7cf8e70cce12132945ff682cf90a02a8d11c459bb88300934fd1686f61c6c069a371c196ca51f605516c7454017c89
data/Gemfile CHANGED
@@ -48,12 +48,13 @@ group :plugins do
48
48
  gem 'mime-types'
49
49
  gem 'mustache', '~> 1.0'
50
50
  gem 'nokogiri', '~> 1.6'
51
+ gem 'nokogumbo', '~> 1.4'
51
52
  gem 'pandoc-ruby'
52
- gem 'pygments.rb', '~> 1.1', '>= 1.1.1', platforms: %i(ruby mswin)
53
+ gem 'pygments.rb', '~> 1.1', '>= 1.1.1', platforms: %i[ruby mswin]
53
54
  gem 'rack'
54
55
  gem 'rainpress'
55
- gem 'rdiscount', '~> 2.2', platforms: %i(ruby mswin)
56
- gem 'redcarpet', platforms: %i(ruby mswin)
56
+ gem 'rdiscount', '~> 2.2', platforms: %i[ruby mswin]
57
+ gem 'redcarpet', platforms: %i[ruby mswin]
57
58
  gem 'RedCloth', platforms: :ruby
58
59
  gem 'rouge'
59
60
  gem 'rubypants'
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  GIT
2
2
  remote: https://github.com/bbatsov/rubocop.git
3
- revision: f0990436f0c766747bbd37b164f43b00fb2d9785
3
+ revision: cf07b9a493feed28577032c307ddab3cb7b8c2fc
4
4
  specs:
5
- rubocop (0.48.0)
5
+ rubocop (0.48.1)
6
+ parallel (~> 1.10)
6
7
  parser (>= 2.3.3.1, < 3.0)
7
8
  powerpack (~> 0.1)
8
9
  rainbow (>= 1.99.1, < 3.0)
@@ -12,8 +13,8 @@ GIT
12
13
  PATH
13
14
  remote: .
14
15
  specs:
15
- nanoc (4.7.5)
16
- cri (~> 2.3)
16
+ nanoc (4.7.6)
17
+ cri (~> 2.8)
17
18
  ddplugin (~> 1.0)
18
19
  hamster (~> 3.0)
19
20
  ref (~> 2.0)
@@ -68,7 +69,7 @@ GEM
68
69
  tins (~> 1.6)
69
70
  crack (0.4.3)
70
71
  safe_yaml (~> 1.0.0)
71
- cri (2.7.1)
72
+ cri (2.8.0)
72
73
  colored (~> 1.2)
73
74
  ddplugin (1.0.1)
74
75
  diff-lcs (1.3)
@@ -196,7 +197,7 @@ GEM
196
197
  fog-voxel (0.1.0)
197
198
  fog-core
198
199
  fog-xml
199
- fog-vsphere (1.9.0)
200
+ fog-vsphere (1.9.1)
200
201
  fog-core
201
202
  rbvmomi (~> 1.9)
202
203
  fog-xenserver (0.3.0)
@@ -232,7 +233,7 @@ GEM
232
233
  hashdiff (0.3.2)
233
234
  inflecto (0.0.2)
234
235
  ipaddress (0.8.3)
235
- json (2.0.3)
236
+ json (2.0.4)
236
237
  kramdown (1.13.2)
237
238
  less (2.6.0)
238
239
  commonjs (~> 0.2.7)
@@ -262,10 +263,13 @@ GEM
262
263
  nenv (0.3.0)
263
264
  nokogiri (1.7.1)
264
265
  mini_portile2 (~> 2.1.0)
266
+ nokogumbo (1.4.10)
267
+ nokogiri
265
268
  notiffany (0.1.1)
266
269
  nenv (~> 0.1)
267
270
  shellany (~> 0.0)
268
271
  pandoc-ruby (2.0.1)
272
+ parallel (1.11.1)
269
273
  parser (2.4.0.0)
270
274
  ast (~> 2.2)
271
275
  powerpack (0.1.1)
@@ -274,7 +278,7 @@ GEM
274
278
  method_source (~> 0.8.1)
275
279
  slop (~> 3.4)
276
280
  public_suffix (2.0.5)
277
- pygments.rb (1.1.1)
281
+ pygments.rb (1.1.2)
278
282
  multi_json (>= 1.0.0)
279
283
  rack (2.0.1)
280
284
  rainbow (2.2.1)
@@ -283,7 +287,7 @@ GEM
283
287
  rb-fsevent (0.9.8)
284
288
  rb-inotify (0.9.8)
285
289
  ffi (>= 0.5.0)
286
- rbvmomi (1.10.0)
290
+ rbvmomi (1.11.0)
287
291
  builder (~> 3.0)
288
292
  json (>= 1.8)
289
293
  nokogiri (~> 1.5)
@@ -325,7 +329,7 @@ GEM
325
329
  tilt (>= 1.3.3, < 2.1)
326
330
  slop (3.6.0)
327
331
  temple (0.7.7)
328
- term-ansicolor (1.5.0)
332
+ term-ansicolor (1.6.0)
329
333
  tins (~> 1.0)
330
334
  therubyracer (0.12.3)
331
335
  libv8 (~> 3.16.14.15)
@@ -337,15 +341,15 @@ GEM
337
341
  trollop (2.1.2)
338
342
  typogruby (1.0.18)
339
343
  rubypants
340
- uglifier (3.1.12)
344
+ uglifier (3.2.0)
341
345
  execjs (>= 0.3.0, < 3)
342
- unicode-display_width (1.1.3)
346
+ unicode-display_width (1.2.1)
343
347
  url (0.3.2)
344
348
  vcr (3.0.3)
345
349
  w3c_validators (1.3.2)
346
350
  json (>= 1.8)
347
351
  nokogiri (~> 1.6)
348
- webmock (2.3.2)
352
+ webmock (3.0.1)
349
353
  addressable (>= 2.3.6)
350
354
  crack (>= 0.3.2)
351
355
  hashdiff
@@ -392,6 +396,7 @@ DEPENDENCIES
392
396
  mustache (~> 1.0)
393
397
  nanoc!
394
398
  nokogiri (~> 1.6)
399
+ nokogumbo (~> 1.4)
395
400
  pandoc-ruby
396
401
  pry
397
402
  pygments.rb (~> 1.1, >= 1.1.1)
data/NEWS.md CHANGED
@@ -1,10 +1,16 @@
1
1
  # Nanoc news
2
2
 
3
+ ## 4.7.6 (2017-04-15)
4
+
5
+ Enhancements:
6
+
7
+ * Added support for `:html5` in `relativize_paths` and `colorize_syntax` filters (#1153)
8
+
3
9
  ## 4.7.5 (2017-04-01)
4
10
 
5
11
  Fixes:
6
12
 
7
- * Recognize `--verbose` when calling `nanoc` without subcommand (#1145, #1146)
13
+ * Made `--verbose` be recognised when calling `nanoc` without subcommand (#1145, #1146)
8
14
 
9
15
  Enhancements:
10
16
 
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ end
14
14
 
15
15
  RSpec::Core::RakeTask.new(:spec)
16
16
 
17
- task test: %i(spec test_all rubocop)
18
- task test_ci: %i(test coveralls:push)
17
+ task test: %i[spec test_all rubocop]
18
+ task test_ci: %i[test coveralls:push]
19
19
 
20
20
  task default: :test
@@ -3,6 +3,9 @@ module Nanoc::Int
3
3
  include Nanoc::Int::ContractsSupport
4
4
  include Enumerable
5
5
 
6
+ attr_reader :item_rep
7
+ attr_reader :actions
8
+
6
9
  def initialize(item_rep, actions: [])
7
10
  @item_rep = item_rep
8
11
  @actions = actions
@@ -71,18 +74,6 @@ module Nanoc::Int
71
74
  )
72
75
  end
73
76
 
74
- def compact_snapshots
75
- actions = []
76
- @actions.each do |action|
77
- if [actions.last, action].all? { |a| a.is_a?(Nanoc::Int::ProcessingActions::Snapshot) }
78
- actions[-1] = actions.last.update(snapshot_names: action.snapshot_names, paths: action.paths)
79
- else
80
- actions << action
81
- end
82
- end
83
- self.class.new(@item_rep, actions: actions)
84
- end
85
-
86
77
  def snapshots_defs
87
78
  is_binary = @item_rep.item.content.binary?
88
79
  snapshot_defs = []
@@ -22,9 +22,9 @@ module Nanoc::Int
22
22
  # that lacks some options, the default value will be taken from
23
23
  # `DEFAULT_CONFIG`.
24
24
  DEFAULT_CONFIG = {
25
- text_extensions: %w(adoc asciidoc atom css erb haml htm html js less markdown md php rb sass scss txt xhtml xml coffee hb handlebars mustache ms slim rdoc).sort,
26
- lib_dirs: %w(lib),
27
- commands_dirs: %w(commands),
25
+ text_extensions: %w[adoc asciidoc atom css erb haml htm html js less markdown md php rb sass scss txt xhtml xml coffee hb handlebars mustache ms slim rdoc].sort,
26
+ lib_dirs: %w[lib],
27
+ commands_dirs: %w[commands],
28
28
  output_dir: 'output',
29
29
  data_sources: [{}],
30
30
  index_filenames: ['index.html'],
@@ -81,10 +81,9 @@ module Nanoc::Int
81
81
  end
82
82
 
83
83
  contract C::Any => C::Maybe[C::RespondTo[:identifier]]
84
- def get_memoized(arg)
84
+ memoized def get_memoized(arg)
85
85
  get_unmemoized(arg)
86
86
  end
87
- memoize :get_memoized
88
87
 
89
88
  contract C::Any => C::IterOf[C::RespondTo[:identifier]]
90
89
  def find_all_unmemoized(arg)
@@ -93,10 +92,9 @@ module Nanoc::Int
93
92
  end
94
93
 
95
94
  contract C::Any => C::IterOf[C::RespondTo[:identifier]]
96
- def find_all_memoized(arg)
95
+ memoized def find_all_memoized(arg)
97
96
  find_all_unmemoized(arg)
98
97
  end
99
- memoize :find_all_memoized
100
98
 
101
99
  def object_with_identifier(identifier)
102
100
  if frozen?
@@ -75,5 +75,6 @@ module Nanoc::Int
75
75
  end
76
76
  end
77
77
  end
78
+ alias memoized memoize
78
79
  end
79
80
  end
@@ -26,7 +26,7 @@ module Nanoc::Int
26
26
 
27
27
  # @return [String]
28
28
  def self.config_filename_for_cwd
29
- filenames = %w(nanoc.yaml config.yaml)
29
+ filenames = %w[nanoc.yaml config.yaml]
30
30
  candidate = filenames.find { |f| File.file?(f) }
31
31
  candidate && File.expand_path(candidate)
32
32
  end
@@ -13,11 +13,11 @@ module Nanoc::Int
13
13
  end
14
14
 
15
15
  def filter_name_and_args_for_layout(layout)
16
- mem = @action_provider.action_sequence_for(layout)
17
- if mem.nil? || mem.size != 1 || !mem[0].is_a?(Nanoc::Int::ProcessingActions::Filter)
16
+ seq = @action_provider.action_sequence_for(layout)
17
+ if seq.nil? || seq.size != 1 || !seq[0].is_a?(Nanoc::Int::ProcessingActions::Filter)
18
18
  raise Nanoc::Int::Errors::UndefinedFilterForLayout.new(layout)
19
19
  end
20
- [mem[0].filter_name, mem[0].params]
20
+ [seq[0].filter_name, seq[0].params]
21
21
  end
22
22
 
23
23
  def create_view_context(dependency_tracker)
@@ -93,11 +93,10 @@ module Nanoc::Int
93
93
  private
94
94
 
95
95
  def run_stage(stage, *args)
96
- name = stage.class.to_s
97
- Nanoc::Int::NotificationCenter.post(:stage_started, name)
96
+ Nanoc::Int::NotificationCenter.post(:stage_started, stage.class)
98
97
  stage.run(*args)
99
98
  ensure
100
- Nanoc::Int::NotificationCenter.post(:stage_ended, name)
99
+ Nanoc::Int::NotificationCenter.post(:stage_ended, stage.class)
101
100
  end
102
101
 
103
102
  def preprocess_stage
@@ -26,7 +26,7 @@ module Nanoc::Int::Compiler::Stages
26
26
  end
27
27
 
28
28
  def cleanup_old_stores
29
- %w(checksums compiled_content dependencies outdatedness action_sequence).each do |fn|
29
+ %w[checksums compiled_content dependencies outdatedness action_sequence].each do |fn|
30
30
  full_fn = File.join('tmp', fn)
31
31
  if File.file?(full_fn)
32
32
  FileUtils.rm_f(full_fn)
@@ -27,14 +27,6 @@ module Nanoc
27
27
  # @api private
28
28
  TMP_BINARY_ITEMS_DIR = 'binary_items'.freeze
29
29
 
30
- # A hash containing variables that will be made available during
31
- # filtering.
32
- #
33
- # @return [Hash]
34
- #
35
- # @api private
36
- attr_reader :assigns
37
-
38
30
  extend DDPlugin::Plugin
39
31
 
40
32
  class << self
@@ -196,10 +188,10 @@ module Nanoc
196
188
  #
197
189
  # @api private
198
190
  def filename
199
- if assigns[:layout]
200
- "layout #{assigns[:layout].identifier}"
201
- elsif assigns[:item]
202
- "item #{assigns[:item].identifier} (rep #{assigns[:item_rep].name})"
191
+ if @layout
192
+ "layout #{@layout.identifier}"
193
+ elsif @item
194
+ "item #{@item.identifier} (rep #{@item_rep.name})"
203
195
  else
204
196
  '?'
205
197
  end
@@ -36,9 +36,9 @@ module Nanoc::Int
36
36
  route_rep(rep, paths, snapshot_names, {})
37
37
  end
38
38
 
39
- mem = @action_provider.action_sequence_for(rep)
40
- action_sequences[rep] = mem
41
- mem.paths.each do |(snapshot_names, paths)|
39
+ seq = @action_provider.action_sequence_for(rep)
40
+ action_sequences[rep] = seq
41
+ seq.paths.each do |(snapshot_names, paths)|
42
42
  route_rep(rep, paths, snapshot_names, assigned_paths)
43
43
  end
44
44
 
@@ -37,7 +37,7 @@ module Nanoc::Int
37
37
  end
38
38
 
39
39
  contract C::Or[Nanoc::Int::Item, Nanoc::Int::ItemRep, Nanoc::Int::Layout] => C::Maybe[OutdatednessStatus]
40
- def outdatedness_status_for(obj)
40
+ memoized def outdatedness_status_for(obj)
41
41
  case obj
42
42
  when Nanoc::Int::ItemRep
43
43
  apply_rules(RULES_FOR_ITEM_REP, obj)
@@ -49,7 +49,6 @@ module Nanoc::Int
49
49
  raise Nanoc::Int::Errors::InternalInconsistency, "do not know how to check outdatedness of #{obj.inspect}"
50
50
  end
51
51
  end
52
- memoize :outdatedness_status_for
53
52
 
54
53
  private
55
54
 
@@ -7,7 +7,7 @@ module Nanoc::Int::OutdatednessRules
7
7
  affects_props :attributes, :compiled_content
8
8
 
9
9
  contract C::Or[Nanoc::Int::ItemRep, Nanoc::Int::Item, Nanoc::Int::Layout], C::Named['Nanoc::Int::OutdatednessChecker'] => C::Maybe[Nanoc::Int::OutdatednessReasons::Generic]
10
- def apply(obj, outdatedness_checker)
10
+ memoized def apply(obj, outdatedness_checker)
11
11
  case obj
12
12
  when Nanoc::Int::ItemRep
13
13
  apply(obj.item, outdatedness_checker)
@@ -29,6 +29,5 @@ module Nanoc::Int::OutdatednessRules
29
29
  raise ArgumentError
30
30
  end
31
31
  end
32
- memoize :apply
33
32
  end
34
33
  end
@@ -14,13 +14,12 @@ module Nanoc::Int::OutdatednessRules
14
14
 
15
15
  private
16
16
 
17
- def any_snippets_modified?(outdatedness_checker)
17
+ memoized def any_snippets_modified?(outdatedness_checker)
18
18
  outdatedness_checker.site.code_snippets.any? do |cs|
19
19
  ch_old = outdatedness_checker.checksum_store[cs]
20
20
  ch_new = Nanoc::Int::Checksummer.calc(cs)
21
21
  ch_old != ch_new
22
22
  end
23
23
  end
24
- memoize :any_snippets_modified?
25
24
  end
26
25
  end
@@ -12,12 +12,11 @@ module Nanoc::Int::OutdatednessRules
12
12
 
13
13
  private
14
14
 
15
- def config_modified?(outdatedness_checker)
15
+ memoized def config_modified?(outdatedness_checker)
16
16
  obj = outdatedness_checker.site.config
17
17
  ch_old = outdatedness_checker.checksum_store[obj]
18
18
  ch_new = Nanoc::Int::Checksummer.calc(obj)
19
19
  ch_old != ch_new
20
20
  end
21
- memoize :config_modified?
22
21
  end
23
22
  end
@@ -5,12 +5,12 @@ module Nanoc::Int::OutdatednessRules
5
5
  def apply(obj, outdatedness_checker)
6
6
  # FIXME: Prefer to not work on serialised version
7
7
 
8
- mem_old = outdatedness_checker.action_sequence_store[obj]
9
- mem_new = outdatedness_checker.action_sequence_for(obj).serialize
10
- return true if mem_old.nil?
8
+ seq_old = outdatedness_checker.action_sequence_store[obj]
9
+ seq_new = outdatedness_checker.action_sequence_for(obj).serialize
10
+ return true if seq_old.nil?
11
11
 
12
- paths_old = mem_old.select { |pa| pa[0] == :snapshot }
13
- paths_new = mem_new.select { |pa| pa[0] == :snapshot }
12
+ paths_old = seq_old.select { |pa| pa[0] == :snapshot }
13
+ paths_new = seq_new.select { |pa| pa[0] == :snapshot }
14
14
 
15
15
  if paths_old != paths_new
16
16
  Nanoc::Int::OutdatednessReasons::PathsModified
@@ -3,9 +3,9 @@ module Nanoc::Int::OutdatednessRules
3
3
  affects_props :compiled_content, :path
4
4
 
5
5
  def apply(obj, outdatedness_checker)
6
- mem_old = outdatedness_checker.action_sequence_store[obj]
7
- mem_new = outdatedness_checker.action_sequence_for(obj).serialize
8
- unless mem_old.eql?(mem_new)
6
+ seq_old = outdatedness_checker.action_sequence_store[obj]
7
+ seq_new = outdatedness_checker.action_sequence_for(obj).serialize
8
+ unless seq_old.eql?(seq_new)
9
9
  Nanoc::Int::OutdatednessReasons::RulesModified
10
10
  end
11
11
  end