def update_nodes(nodes)
      old = dup
      replace(nodes)
      each do |node|
        begin
          if (i = old.find_node_index(node.name))
            node.stats = old[i].stats
            node.last  = old[i].last
          end
        rescue Oxidized::NodeNotFound # rubocop:disable Lint/HandleExceptions
        end
      end
      sort_by! { |x| x.last.nil? ? Time.new(0) : x.last.end }
    end
def update_nodes(nodes)
      old = dup
      replace(nodes)
      each do |node|
        begin
          if (i = old.find_node_index(node.name))
            node.stats = old[i].stats
            node.last  = old[i].last
          end
        rescue Oxidized::NodeNotFound # rubocop:disable Lint/HandleExceptions
        end
      end
      sort_by! { |x| x.last.nil? ? Time.new(0) : x.last.end }
    end
walks list of new nodes, if old node contains same name, adds last and
 stats information from old to new.

 @todo can we trust name to be unique identifier, what about when groups are used?
 @param [Array] nodes Array of nodes used to replace+update old