nanoc-core 4.12.1 → 4.12.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4967bb5538d055185b3c646d4364f75e01e63a337592b63b1df8896b011b1423
4
- data.tar.gz: 472af023ca27a5f7a2f09c54ff43c978c83a4d0f86c265e52f75b5e0dc1c7beb
3
+ metadata.gz: 38679d28c863c8f0780b95fff9f5d6605e935c6f66fefebe80ac1dbc9dbb027e
4
+ data.tar.gz: 86addc1455cc60c1bf36a4a17fda2f91dfe4eacc2bade6ba1993c439d9274418
5
5
  SHA512:
6
- metadata.gz: a8cac018340546cc2950bbf3821df4f54be6e50c94eb91e07baa0aeafdc06f899438eb78d5b7f7cd5691c023230415a705bc7b69bcb70ca4621cd411c09d0d69
7
- data.tar.gz: 6a56360bd58b3f779e86be59188e453a8f4add7b6626d4ae9f0c3624436fefd7c1ca5fc7836f7f566974c992ae0c67a3acd869eecbd9a31dfc8cf94bd75ee7c3
6
+ metadata.gz: 310c159faa4a9b4ca44cc4b8a02d1f4620ffc8fd2410f737d66a00bc1f60f3096514d6bf28f82828726e27778dff3eae4104e7e26c1714f6b50eee4ed3265eb8
7
+ data.tar.gz: 7f37f412f1718f1863df6f90c54d351d379f7f16a954824f04f8d7b0d68df4da9c8bfe0de5c068837453c34eb0978956f0e5724e5966c81a1c0022b184fff1ce
@@ -3,9 +3,9 @@
3
3
  module Nanoc
4
4
  module Core
5
5
  class ActionSequence
6
- include Nanoc::Core::ContractsSupport
6
+ # include Nanoc::Core::ContractsSupport
7
7
  include Enumerable
8
- DDMemoize.activate(self)
8
+ prepend MemoWise
9
9
 
10
10
  attr_reader :item_rep
11
11
  attr_reader :actions
@@ -15,42 +15,43 @@ module Nanoc
15
15
  @actions = actions
16
16
  end
17
17
 
18
- contract C::None => Numeric
18
+ # contract C::None => Numeric
19
19
  def size
20
20
  @actions.size
21
21
  end
22
22
 
23
- contract Numeric => C::Maybe[Nanoc::Core::ProcessingAction]
23
+ # contract Numeric => C::Maybe[Nanoc::Core::ProcessingAction]
24
24
  def [](idx)
25
25
  @actions[idx]
26
26
  end
27
27
 
28
- contract C::None => C::ArrayOf[Nanoc::Core::ProcessingAction]
28
+ # contract C::None => C::ArrayOf[Nanoc::Core::ProcessingAction]
29
29
  def snapshot_actions
30
30
  @actions.select { |a| a.is_a?(Nanoc::Core::ProcessingActions::Snapshot) }
31
31
  end
32
32
 
33
- contract C::None => Array
33
+ # contract C::None => Array
34
34
  def paths
35
35
  snapshot_actions.map { |a| [a.snapshot_names, a.paths] }
36
36
  end
37
37
 
38
- memoized def serialize
38
+ def serialize
39
39
  serialize_uncached
40
40
  end
41
+ memo_wise :serialize
41
42
 
42
- contract C::None => Array
43
+ # contract C::None => Array
43
44
  def serialize_uncached
44
45
  to_a.map(&:serialize)
45
46
  end
46
47
 
47
- contract C::Func[Nanoc::Core::ProcessingAction => C::Any] => self
48
+ # contract C::Func[Nanoc::Core::ProcessingAction => C::Any] => self
48
49
  def each
49
50
  @actions.each { |a| yield(a) }
50
51
  self
51
52
  end
52
53
 
53
- contract C::Func[Nanoc::Core::ProcessingAction => C::Any] => self
54
+ # contract C::Func[Nanoc::Core::ProcessingAction => C::Any] => self
54
55
  def map
55
56
  self.class.new(
56
57
  @item_rep,
@@ -36,7 +36,13 @@ module Nanoc
36
36
  # @return [void]
37
37
  def load
38
38
  # rubocop:disable Security/Eval
39
- eval('def self.use_helper(mod); Nanoc::Core::Context.instance_eval { include mod }; end', TOPLEVEL_BINDING)
39
+ eval(<<~CODE, TOPLEVEL_BINDING)
40
+ unless respond_to?(:use_helper)
41
+ def self.use_helper(mod)
42
+ Nanoc::Core::Context.instance_eval { include mod }
43
+ end
44
+ end
45
+ CODE
40
46
  eval(@data, TOPLEVEL_BINDING, @filename)
41
47
  # rubocop:enable Security/Eval
42
48
  nil
@@ -18,15 +18,20 @@ module Nanoc
18
18
  contract Nanoc::Core::ItemRep, C::KeywordArgs[is_outdated: C::Bool], C::Func[C::None => C::Any] => C::Any
19
19
  def run(rep, is_outdated:)
20
20
  if can_reuse_content_for_rep?(rep, is_outdated: is_outdated)
21
+ # If cached content can be used for this item rep, do so, and skip
22
+ # recalculation of the item rep compiled content.
21
23
  Nanoc::Core::NotificationCenter.post(:cached_content_used, rep)
22
-
23
24
  @compiled_content_store.set_all(rep, @compiled_content_cache[rep])
24
25
  else
26
+ # Cached content couldn’t be used for this rep. Continue as usual with
27
+ # recalculation of the item rep compiled content.
25
28
  yield
29
+
30
+ # Update compiled content cache, now that the item rep is compiled.
31
+ @compiled_content_cache[rep] = @compiled_content_store.get_all(rep)
26
32
  end
27
33
 
28
34
  rep.compiled = true
29
- @compiled_content_cache[rep] = @compiled_content_store.get_all(rep)
30
35
  end
31
36
 
32
37
  contract Nanoc::Core::ItemRep, C::KeywordArgs[is_outdated: C::Bool] => C::Bool
@@ -11,7 +11,7 @@ module Nanoc
11
11
  contract C::Maybe[String] => C::Any
12
12
  def initialize(filename)
13
13
  if filename && Pathname.new(filename).relative?
14
- raise ArgumentError, 'Content filename is not absolute'
14
+ raise ArgumentError, "Content filename #{filename} is not absolute"
15
15
  end
16
16
 
17
17
  @filename = filename
@@ -19,20 +19,25 @@ module Nanoc
19
19
  def initialize(items, layouts, config)
20
20
  super(Nanoc::Core::Store.tmp_path_for(config: config, store_name: 'dependencies'), 5)
21
21
 
22
+ @config = config
22
23
  @items = items
23
24
  @layouts = layouts
24
25
 
25
- @refs2objs = {}
26
- items.each { |o| add_vertex_for(o) }
27
- layouts.each { |o| add_vertex_for(o) }
28
- add_vertex_for(config)
29
- add_vertex_for(items)
30
- add_vertex_for(layouts)
26
+ rebuild_refs2objs
31
27
 
32
28
  @new_objects = []
33
29
  @graph = Nanoc::Core::DirectedGraph.new([nil] + objs2refs(@items) + objs2refs(@layouts))
34
30
  end
35
31
 
32
+ def rebuild_refs2objs
33
+ @refs2objs = {}
34
+ @items.each { |o| add_vertex_for(o) }
35
+ @layouts.each { |o| add_vertex_for(o) }
36
+ add_vertex_for(@config)
37
+ add_vertex_for(@items)
38
+ add_vertex_for(@layouts)
39
+ end
40
+
36
41
  contract C_OBJ_SRC => C::ArrayOf[Nanoc::Core::Dependency]
37
42
  def dependencies_causing_outdatedness_of(object)
38
43
  objects_causing_outdatedness_of(object).map do |other_object|
@@ -53,14 +58,12 @@ module Nanoc
53
58
 
54
59
  def items=(items)
55
60
  @items = items
56
- items.each { |o| @refs2objs[obj2ref(o)] = o }
57
- add_vertex_for(items)
61
+ rebuild_refs2objs
58
62
  end
59
63
 
60
64
  def layouts=(layouts)
61
65
  @layouts = layouts
62
- layouts.each { |o| @refs2objs[obj2ref(o)] = o }
63
- add_vertex_for(layouts)
66
+ rebuild_refs2objs
64
67
  end
65
68
 
66
69
  def new_items
@@ -3,9 +3,9 @@
3
3
  module Nanoc
4
4
  module Core
5
5
  class IdentifiableCollection
6
- DDMemoize.activate(self)
6
+ prepend MemoWise
7
7
 
8
- include Nanoc::Core::ContractsSupport
8
+ # include Nanoc::Core::ContractsSupport
9
9
  include Enumerable
10
10
 
11
11
  extend Forwardable
@@ -17,19 +17,19 @@ module Nanoc
17
17
  raise 'IdentifiableCollection is abstract and cannot be instantiated'
18
18
  end
19
19
 
20
- contract C::Or[Hash, C::Named['Nanoc::Core::Configuration']], C::IterOf[C::RespondTo[:identifier]], C::Maybe[String] => C::Any
20
+ # contract C::Or[Hash, C::Named['Nanoc::Core::Configuration']], C::IterOf[C::RespondTo[:identifier]], C::Maybe[String] => C::Any
21
21
  def initialize_basic(config, objects = [], name = nil)
22
22
  @config = config
23
23
  @objects = Hamster::Vector.new(objects)
24
24
  @name = name
25
25
  end
26
26
 
27
- contract C::None => String
27
+ # contract C::None => String
28
28
  def inspect
29
29
  "<#{self.class}>"
30
30
  end
31
31
 
32
- contract C::None => self
32
+ # contract C::None => self
33
33
  def freeze
34
34
  @objects.freeze
35
35
  each(&:freeze)
@@ -37,7 +37,7 @@ module Nanoc
37
37
  super
38
38
  end
39
39
 
40
- contract C::Any => C::Maybe[C::RespondTo[:identifier]]
40
+ # contract C::Any => C::Maybe[C::RespondTo[:identifier]]
41
41
  def [](arg)
42
42
  if frozen?
43
43
  get_memoized(arg)
@@ -46,7 +46,7 @@ module Nanoc
46
46
  end
47
47
  end
48
48
 
49
- contract C::Any => C::IterOf[C::RespondTo[:identifier]]
49
+ # contract C::Any => C::IterOf[C::RespondTo[:identifier]]
50
50
  def find_all(arg)
51
51
  if frozen?
52
52
  find_all_memoized(arg)
@@ -55,27 +55,27 @@ module Nanoc
55
55
  end
56
56
  end
57
57
 
58
- contract C::None => C::ArrayOf[C::RespondTo[:identifier]]
58
+ # contract C::None => C::ArrayOf[C::RespondTo[:identifier]]
59
59
  def to_a
60
60
  @objects.to_a
61
61
  end
62
62
 
63
- contract C::None => C::Bool
63
+ # contract C::None => C::Bool
64
64
  def empty?
65
65
  @objects.empty?
66
66
  end
67
67
 
68
- contract C::RespondTo[:identifier] => self
68
+ # contract C::RespondTo[:identifier] => self
69
69
  def add(obj)
70
70
  self.class.new(@config, @objects.add(obj))
71
71
  end
72
72
 
73
- contract C::Func[C::RespondTo[:identifier] => C::Any] => self
73
+ # contract C::Func[C::RespondTo[:identifier] => C::Any] => self
74
74
  def reject(&block)
75
75
  self.class.new(@config, @objects.reject(&block))
76
76
  end
77
77
 
78
- contract C::Any => C::Maybe[C::RespondTo[:identifier]]
78
+ # contract C::Any => C::Maybe[C::RespondTo[:identifier]]
79
79
  def object_with_identifier(identifier)
80
80
  if frozen?
81
81
  @mapping[identifier.to_s]
@@ -86,7 +86,7 @@ module Nanoc
86
86
 
87
87
  protected
88
88
 
89
- contract C::Any => C::Maybe[C::RespondTo[:identifier]]
89
+ # contract C::Any => C::Maybe[C::RespondTo[:identifier]]
90
90
  def get_unmemoized(arg)
91
91
  case arg
92
92
  when Nanoc::Core::Identifier
@@ -100,21 +100,23 @@ module Nanoc
100
100
  end
101
101
  end
102
102
 
103
- contract C::Any => C::Maybe[C::RespondTo[:identifier]]
104
- memoized def get_memoized(arg)
105
- get_unmemoized(arg)
103
+ # contract C::Any => C::Maybe[C::RespondTo[:identifier]]
104
+ def get_memoized(_arg)
105
+ # TODO: Figure out how to get memo_wise to work with subclasses
106
+ raise 'implement in subclasses'
106
107
  end
107
108
 
108
- contract C::Any => C::IterOf[C::RespondTo[:identifier]]
109
+ # contract C::Any => C::IterOf[C::RespondTo[:identifier]]
109
110
  def find_all_unmemoized(arg)
110
111
  pat = Pattern.from(arg)
111
112
  select { |i| pat.match?(i.identifier) }
112
113
  end
113
114
 
114
- contract C::Any => C::IterOf[C::RespondTo[:identifier]]
115
- memoized def find_all_memoized(arg)
115
+ # contract C::Any => C::IterOf[C::RespondTo[:identifier]]
116
+ def find_all_memoized(arg)
116
117
  find_all_unmemoized(arg)
117
118
  end
119
+ memo_wise :find_all_memoized
118
120
 
119
121
  def object_matching_glob(glob)
120
122
  if use_globs?
@@ -130,7 +132,7 @@ module Nanoc
130
132
  end
131
133
  end
132
134
 
133
- contract C::None => C::Bool
135
+ # contract C::None => C::Bool
134
136
  def use_globs?
135
137
  @config[:string_pattern_type] == 'glob'
136
138
  end
@@ -3,10 +3,18 @@
3
3
  module Nanoc
4
4
  module Core
5
5
  class ItemCollection < IdentifiableCollection
6
+ prepend MemoWise
7
+
6
8
  def initialize(config, objects = [])
7
9
  initialize_basic(config, objects, 'items')
8
10
  end
9
11
 
12
+ # contract C::Any => C::Maybe[C::RespondTo[:identifier]]
13
+ def get_memoized(arg)
14
+ get_unmemoized(arg)
15
+ end
16
+ memo_wise :get_memoized
17
+
10
18
  def reference
11
19
  'items'
12
20
  end
@@ -3,10 +3,18 @@
3
3
  module Nanoc
4
4
  module Core
5
5
  class LayoutCollection < IdentifiableCollection
6
+ prepend MemoWise
7
+
6
8
  def initialize(config, objects = [])
7
9
  initialize_basic(config, objects, 'layouts')
8
10
  end
9
11
 
12
+ # contract C::Any => C::Maybe[C::RespondTo[:identifier]]
13
+ def get_memoized(arg)
14
+ get_unmemoized(arg)
15
+ end
16
+ memo_wise :get_memoized
17
+
10
18
  def reference
11
19
  'layouts'
12
20
  end
@@ -7,9 +7,9 @@ module Nanoc
7
7
  # @api private
8
8
  class OutdatednessChecker
9
9
  class Basic
10
- DDMemoize.activate(self)
10
+ prepend MemoWise
11
11
 
12
- include Nanoc::Core::ContractsSupport
12
+ # include Nanoc::Core::ContractsSupport
13
13
 
14
14
  Rules = Nanoc::Core::OutdatednessRules
15
15
 
@@ -46,16 +46,16 @@ module Nanoc
46
46
  Rules::LayoutCollectionExtended,
47
47
  ].freeze
48
48
 
49
- C_OBJ_MAYBE_REP = C::Or[Nanoc::Core::Item, Nanoc::Core::ItemRep, Nanoc::Core::Configuration, Nanoc::Core::Layout, Nanoc::Core::ItemCollection, Nanoc::Core::LayoutCollection]
49
+ # C_OBJ_MAYBE_REP = C::Or[Nanoc::Core::Item, Nanoc::Core::ItemRep, Nanoc::Core::Configuration, Nanoc::Core::Layout, Nanoc::Core::ItemCollection, Nanoc::Core::LayoutCollection]
50
50
 
51
- contract C::KeywordArgs[outdatedness_checker: OutdatednessChecker, reps: Nanoc::Core::ItemRepRepo] => C::Any
51
+ # contract C::KeywordArgs[outdatedness_checker: OutdatednessChecker, reps: Nanoc::Core::ItemRepRepo] => C::Any
52
52
  def initialize(outdatedness_checker:, reps:)
53
53
  @outdatedness_checker = outdatedness_checker
54
54
  @reps = reps
55
55
  end
56
56
 
57
- contract C_OBJ_MAYBE_REP => C::Maybe[Nanoc::Core::OutdatednessStatus]
58
- memoized def outdatedness_status_for(obj)
57
+ # contract C_OBJ_MAYBE_REP => C::Maybe[Nanoc::Core::OutdatednessStatus]
58
+ def outdatedness_status_for(obj)
59
59
  case obj
60
60
  when Nanoc::Core::ItemRep
61
61
  apply_rules(RULES_FOR_ITEM_REP, obj)
@@ -73,10 +73,11 @@ module Nanoc
73
73
  raise Nanoc::Core::Errors::InternalInconsistency, "do not know how to check outdatedness of #{obj.inspect}"
74
74
  end
75
75
  end
76
+ memo_wise :outdatedness_status_for
76
77
 
77
78
  private
78
79
 
79
- contract C::ArrayOf[Class], C_OBJ_MAYBE_REP, Nanoc::Core::OutdatednessStatus => C::Maybe[Nanoc::Core::OutdatednessStatus]
80
+ # contract C::ArrayOf[Class], C_OBJ_MAYBE_REP, Nanoc::Core::OutdatednessStatus => C::Maybe[Nanoc::Core::OutdatednessStatus]
80
81
  def apply_rules(rules, obj, status = Nanoc::Core::OutdatednessStatus.new)
81
82
  rules.inject(status) do |acc, rule|
82
83
  if !acc.useful_to_apply?(rule)
@@ -92,15 +93,15 @@ module Nanoc
92
93
  end
93
94
  end
94
95
 
95
- contract C::ArrayOf[Class], C::ArrayOf[C_OBJ_MAYBE_REP] => C::Maybe[Nanoc::Core::OutdatednessStatus]
96
+ # contract C::ArrayOf[Class], C::ArrayOf[C_OBJ_MAYBE_REP] => C::Maybe[Nanoc::Core::OutdatednessStatus]
96
97
  def apply_rules_multi(rules, objs)
97
98
  objs.inject(Nanoc::Core::OutdatednessStatus.new) { |acc, elem| apply_rules(rules, elem, acc) }
98
99
  end
99
100
  end
100
101
 
101
- DDMemoize.activate(self)
102
+ prepend MemoWise
102
103
 
103
- include Nanoc::Core::ContractsSupport
104
+ # include Nanoc::Core::ContractsSupport
104
105
 
105
106
  attr_reader :checksum_store
106
107
  attr_reader :checksums
@@ -111,11 +112,11 @@ module Nanoc
111
112
 
112
113
  Reasons = Nanoc::Core::OutdatednessReasons
113
114
 
114
- C_OBJ = C::Or[Nanoc::Core::Item, Nanoc::Core::ItemRep, Nanoc::Core::Configuration, Nanoc::Core::Layout, Nanoc::Core::ItemCollection]
115
- C_ITEM_OR_REP = C::Or[Nanoc::Core::Item, Nanoc::Core::ItemRep]
116
- C_ACTION_SEQUENCES = C::HashOf[C_OBJ => Nanoc::Core::ActionSequence]
115
+ # C_OBJ = C::Or[Nanoc::Core::Item, Nanoc::Core::ItemRep, Nanoc::Core::Configuration, Nanoc::Core::Layout, Nanoc::Core::ItemCollection]
116
+ # C_ITEM_OR_REP = C::Or[Nanoc::Core::Item, Nanoc::Core::ItemRep]
117
+ # C_ACTION_SEQUENCES = C::HashOf[C_OBJ => Nanoc::Core::ActionSequence]
117
118
 
118
- contract C::KeywordArgs[site: Nanoc::Core::Site, checksum_store: Nanoc::Core::ChecksumStore, checksums: Nanoc::Core::ChecksumCollection, dependency_store: Nanoc::Core::DependencyStore, action_sequence_store: Nanoc::Core::ActionSequenceStore, action_sequences: C_ACTION_SEQUENCES, reps: Nanoc::Core::ItemRepRepo] => C::Any
119
+ # contract C::KeywordArgs[site: Nanoc::Core::Site, checksum_store: Nanoc::Core::ChecksumStore, checksums: Nanoc::Core::ChecksumCollection, dependency_store: Nanoc::Core::DependencyStore, action_sequence_store: Nanoc::Core::ActionSequenceStore, action_sequences: C_ACTION_SEQUENCES, reps: Nanoc::Core::ItemRepRepo] => C::Any
119
120
  def initialize(site:, checksum_store:, checksums:, dependency_store:, action_sequence_store:, action_sequences:, reps:)
120
121
  @site = site
121
122
  @checksum_store = checksum_store
@@ -132,12 +133,12 @@ module Nanoc
132
133
  @action_sequences.fetch(rep)
133
134
  end
134
135
 
135
- contract C_OBJ => C::Bool
136
+ # contract C_OBJ => C::Bool
136
137
  def outdated?(obj)
137
138
  outdatedness_reasons_for(obj).any?
138
139
  end
139
140
 
140
- contract C_OBJ => C::IterOf[Reasons::Generic]
141
+ # contract C_OBJ => C::IterOf[Reasons::Generic]
141
142
  def outdatedness_reasons_for(obj)
142
143
  reasons = basic.outdatedness_status_for(obj).reasons
143
144
  if reasons.any?
@@ -151,12 +152,12 @@ module Nanoc
151
152
 
152
153
  private
153
154
 
154
- contract C::None => Basic
155
+ # contract C::None => Basic
155
156
  def basic
156
157
  @_basic ||= Basic.new(outdatedness_checker: self, reps: @reps)
157
158
  end
158
159
 
159
- contract C_OBJ, Hamster::Set => C::Bool
160
+ # contract C_OBJ, Hamster::Set => C::Bool
160
161
  def outdated_due_to_dependencies?(obj, processed = Hamster::Set.new)
161
162
  # Convert from rep to item if necessary
162
163
  obj = obj.item if obj.is_a?(Nanoc::Core::ItemRep)
@@ -188,7 +189,7 @@ module Nanoc
188
189
  is_outdated
189
190
  end
190
191
 
191
- contract Nanoc::Core::Dependency => C::Bool
192
+ # contract Nanoc::Core::Dependency => C::Bool
192
193
  def dependency_causes_outdatedness?(dependency)
193
194
  return true if dependency.from.nil?
194
195
 
@@ -4,9 +4,9 @@ module Nanoc
4
4
  module Core
5
5
  module OutdatednessRules
6
6
  class CodeSnippetsModified < Nanoc::Core::OutdatednessRule
7
- DDMemoize.activate(self)
7
+ prepend MemoWise
8
8
 
9
- include Nanoc::Core::ContractsSupport
9
+ # include Nanoc::Core::ContractsSupport
10
10
 
11
11
  affects_props :raw_content, :attributes, :compiled_content, :path
12
12
 
@@ -18,13 +18,14 @@ module Nanoc
18
18
 
19
19
  private
20
20
 
21
- memoized def any_snippets_modified?(outdatedness_checker)
21
+ def any_snippets_modified?(outdatedness_checker)
22
22
  outdatedness_checker.site.code_snippets.any? do |cs|
23
23
  ch_old = outdatedness_checker.checksum_store[cs]
24
24
  ch_new = outdatedness_checker.checksums.checksum_for(cs)
25
25
  ch_old != ch_new
26
26
  end
27
27
  end
28
+ memo_wise :any_snippets_modified?
28
29
  end
29
30
  end
30
31
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Nanoc
4
4
  module Core
5
- VERSION = '4.12.1'
5
+ VERSION = '4.12.5'
6
6
  end
7
7
  end
data/lib/nanoc/core.rb CHANGED
@@ -11,10 +11,10 @@ require 'yaml'
11
11
  # External gems
12
12
  require 'concurrent-ruby'
13
13
  require 'json_schema'
14
- require 'ddmemoize'
15
14
  require 'ddmetrics'
16
15
  require 'ddplugin'
17
16
  require 'hamster'
17
+ require 'memo_wise'
18
18
  require 'slow_enumerator_tools'
19
19
  require 'tty-platform'
20
20
  require 'zeitwerk'
@@ -38,7 +38,7 @@ module Nanoc
38
38
  #
39
39
  # @api private
40
40
  def self.version_information
41
- "Nanoc #{Nanoc::VERSION} © 2007–2021 Denis Defreyne.\n" \
41
+ "Nanoc #{Nanoc::VERSION} © 2007–2022 Denis Defreyne.\n" \
42
42
  "Running #{RUBY_ENGINE} #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) on #{RUBY_PLATFORM} with RubyGems #{Gem::VERSION}.\n"
43
43
  end
44
44
 
@@ -51,8 +51,6 @@ module Nanoc
51
51
  end
52
52
  end
53
53
 
54
- DDMemoize.enable_metrics
55
-
56
54
  inflector_class = Class.new(Zeitwerk::Inflector) do
57
55
  def camelize(basename, abspath)
58
56
  case basename
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanoc-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.12.1
4
+ version: 4.12.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Defreyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-05 00:00:00.000000000 Z
11
+ date: 2022-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: ddmemoize
28
+ name: ddmetrics
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: ddmetrics
42
+ name: ddplugin
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
@@ -53,47 +53,47 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: ddplugin
56
+ name: hamster
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.0'
61
+ version: '3.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
68
+ version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: hamster
70
+ name: json_schema
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.0'
75
+ version: '0.19'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '3.0'
82
+ version: '0.19'
83
83
  - !ruby/object:Gem::Dependency
84
- name: json_schema
84
+ name: memo_wise
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.19'
89
+ version: '1.5'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0.19'
96
+ version: '1.5'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: slow_enumerator_tools
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -284,7 +284,8 @@ files:
284
284
  homepage: https://nanoc.ws/
285
285
  licenses:
286
286
  - MIT
287
- metadata: {}
287
+ metadata:
288
+ rubygems_mfa_required: 'true'
288
289
  post_install_message:
289
290
  rdoc_options: []
290
291
  require_paths:
@@ -293,14 +294,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
293
294
  requirements:
294
295
  - - ">="
295
296
  - !ruby/object:Gem::Version
296
- version: '2.5'
297
+ version: '2.6'
297
298
  required_rubygems_version: !ruby/object:Gem::Requirement
298
299
  requirements:
299
300
  - - ">="
300
301
  - !ruby/object:Gem::Version
301
302
  version: '0'
302
303
  requirements: []
303
- rubygems_version: 3.2.15
304
+ rubygems_version: 3.3.5
304
305
  signing_key:
305
306
  specification_version: 4
306
307
  summary: Core of Nanoc