class Nanoc::Core::OutdatednessRules::RulesModified
Public Instance Methods
apply(obj, outdatedness_checker)
click to toggle source
# File lib/nanoc/core/outdatedness_rules/rules_modified.rb, line 9 def apply(obj, outdatedness_checker) # Check rules of obj itself if rules_modified?(obj, outdatedness_checker) return Nanoc::Core::OutdatednessReasons::RulesModified end # Check rules of layouts used by obj layouts = layouts_touched_by(obj, outdatedness_checker) if layouts.any? { |layout| rules_modified?(layout, outdatedness_checker) } return Nanoc::Core::OutdatednessReasons::RulesModified end nil end
Private Instance Methods
layouts_touched_by(obj, outdatedness_checker)
click to toggle source
# File lib/nanoc/core/outdatedness_rules/rules_modified.rb, line 33 def layouts_touched_by(obj, outdatedness_checker) actions = outdatedness_checker.action_sequence_store[obj] layout_actions = actions.select { |a| a.first == :layout } layout_actions.map do |layout_action| layout_pattern = layout_action[1] outdatedness_checker.site.layouts[layout_pattern] end.compact end
rules_modified?(obj, outdatedness_checker)
click to toggle source
# File lib/nanoc/core/outdatedness_rules/rules_modified.rb, line 26 def rules_modified?(obj, outdatedness_checker) seq_old = outdatedness_checker.action_sequence_store[obj] seq_new = outdatedness_checker.action_sequence_for(obj).serialize !seq_old.eql?(seq_new) end