class ActionView::Resolver::Cache

def templates_have_changed?(cached_templates, fresh_templates)

def templates_have_changed?(cached_templates, fresh_templates)
  # if either the old or new template list is empty, we don't need to (and can't)
  # compare modification times, and instead just check whether the lists are different
  if cached_templates.blank? || fresh_templates.blank?
    return fresh_templates.blank? != cached_templates.blank?
  end
  cached_templates_max_updated_at = cached_templates.map(&:updated_at).max
  # if a template has changed, it will be now be newer than all the cached templates
  fresh_templates.any? { |t| t.updated_at > cached_templates_max_updated_at }
end