nanoc-core 4.12.3 → 4.12.4

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: 3dc7e6692696f6b2b0bbf15a7c5f0aa607af851182de259323b3f18869117ef0
4
- data.tar.gz: a6964648a0eb41ffbffbda9fd9b18da1f80dd83a1a86d8564aee05f6bd5be16d
3
+ metadata.gz: 696f833c95259f4ac196571804aad577bf848fefe59d4f52900ddf7be3ba1866
4
+ data.tar.gz: 4e058aa3ebc13f7140166d69a1e8668be7740fbcfd3dcf0cdb9c5d698d17bd0c
5
5
  SHA512:
6
- metadata.gz: 4ee96bf469d44eb81ee815f6adf1439dadcd7efa34fdb9f71c057888ac4b690d799506d24b3fce04d54530deca15deb3564894cd340f519fde93fdeb80295487
7
- data.tar.gz: cfa697a3471cb5efb04c8d9e7f919c39b399f958b2f20a8232bd6c3d2d5214fd2a3acf4fb4308a4b094cbf02c4bb87ae050379c6a3b0421092101c2576e69432
6
+ metadata.gz: 6fba91ec4738cc64277c5cf0976704fee75355e5f6113691413b6d17b409aa08335221e0148f08de5ce4958cf8ad3a7b07cb315cd290be443b2b809728cc0b43
7
+ data.tar.gz: '09a8b04c706fa8e58e62510a19e7f8b426d826fd6209d12c092d99ec44abbd80db5665d9f34bc3f030bca8949435c52fd2d60f69f346940cf202ddce44d83cf8'
@@ -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,
@@ -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
@@ -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.3'
5
+ VERSION = '4.12.4'
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.3
4
+ version: 4.12.4
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-10-09 00:00:00.000000000 Z
11
+ date: 2022-01-15 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:
@@ -300,7 +301,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
300
301
  - !ruby/object:Gem::Version
301
302
  version: '0'
302
303
  requirements: []
303
- rubygems_version: 3.2.28
304
+ rubygems_version: 3.3.4
304
305
  signing_key:
305
306
  specification_version: 4
306
307
  summary: Core of Nanoc