lib/nanoc/base/services/outdatedness_rules/attributes_modified.rb in nanoc-4.11.0 vs lib/nanoc/base/services/outdatedness_rules/attributes_modified.rb in nanoc-4.11.1
- old
+ new
@@ -1,37 +1,41 @@
# frozen_string_literal: true
-module Nanoc::Int::OutdatednessRules
- class AttributesModified < Nanoc::Int::OutdatednessRule
- include Nanoc::Int::ContractsSupport
+module Nanoc
+ module Int
+ module OutdatednessRules
+ class AttributesModified < Nanoc::Int::OutdatednessRule
+ include Nanoc::Core::ContractsSupport
- affects_props :attributes, :compiled_content
+ affects_props :attributes, :compiled_content
- contract C::Or[Nanoc::Int::ItemRep, Nanoc::Int::Item, Nanoc::Int::Configuration, Nanoc::Int::Layout], C::Named['Nanoc::Int::OutdatednessChecker'] => C::Maybe[Nanoc::Int::OutdatednessReasons::Generic]
- def apply(obj, outdatedness_checker)
- case obj
- when Nanoc::Int::ItemRep
- apply(obj.item, outdatedness_checker)
- when Nanoc::Int::Item, Nanoc::Int::Layout, Nanoc::Int::Configuration
- if outdatedness_checker.checksum_store[obj] == outdatedness_checker.checksums.checksum_for(obj)
- return nil
- end
+ contract C::Or[Nanoc::Core::ItemRep, Nanoc::Core::Item, Nanoc::Core::Configuration, Nanoc::Core::Layout], C::Named['Nanoc::Int::OutdatednessChecker'] => C::Maybe[Nanoc::Int::OutdatednessReasons::Generic]
+ def apply(obj, outdatedness_checker)
+ case obj
+ when Nanoc::Core::ItemRep
+ apply(obj.item, outdatedness_checker)
+ when Nanoc::Core::Item, Nanoc::Core::Layout, Nanoc::Core::Configuration
+ 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
+ old_checksums = outdatedness_checker.checksum_store.attributes_checksum_for(obj)
+ unless old_checksums
+ return Nanoc::Int::OutdatednessReasons::AttributesModified.new(true)
+ end
- new_checksums = outdatedness_checker.checksums.attributes_checksum_for(obj)
+ new_checksums = outdatedness_checker.checksums.attributes_checksum_for(obj)
- attributes = Set.new(old_checksums.keys) + Set.new(new_checksums.keys)
- changed_attributes = attributes.reject { |a| old_checksums[a] == new_checksums[a] }
+ attributes = Set.new(old_checksums.keys) + Set.new(new_checksums.keys)
+ changed_attributes = attributes.reject { |a| old_checksums[a] == new_checksums[a] }
- if changed_attributes.any?
- Nanoc::Int::OutdatednessReasons::AttributesModified.new(changed_attributes)
+ if changed_attributes.any?
+ Nanoc::Int::OutdatednessReasons::AttributesModified.new(changed_attributes)
+ end
+ else
+ raise ArgumentError
+ end
end
- else
- raise ArgumentError
end
end
end
end