nanoc 4.7.5 → 4.7.6

Sign up to get free protection for your applications and to get access to all the features.
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