lib/nanoc/base/services/outdatedness_rules/attributes_modified.rb in nanoc-4.7.8 vs lib/nanoc/base/services/outdatedness_rules/attributes_modified.rb in nanoc-4.7.9
- old
+ new
@@ -1,18 +1,20 @@
module Nanoc::Int::OutdatednessRules
class AttributesModified < Nanoc::Int::OutdatednessRule
- extend Nanoc::Int::Memoization
-
include Nanoc::Int::ContractsSupport
affects_props :attributes, :compiled_content
contract C::Or[Nanoc::Int::ItemRep, Nanoc::Int::Item, Nanoc::Int::Layout], C::Named['Nanoc::Int::OutdatednessChecker'] => C::Maybe[Nanoc::Int::OutdatednessReasons::Generic]
- memoized def apply(obj, outdatedness_checker)
+ def apply(obj, outdatedness_checker)
case obj
when Nanoc::Int::ItemRep
apply(obj.item, outdatedness_checker)
when Nanoc::Int::Item, Nanoc::Int::Layout
+ if outdatedness_checker.checksum_store[obj] == outdatedness_checker.checksums.checksum_for(obj)
+ return nil
+ end
+
old_checksums = outdatedness_checker.checksum_store.attributes_checksum_for(obj)
unless old_checksums
return Nanoc::Int::OutdatednessReasons::AttributesModified.new(true)
end