def nodes
      # Find the nodes that were down but are ready to be refreshed, or those
      # with stale connection information.
      needs_refresh, available = seeds.partition do |node|
        refreshable?(node)
      end

      # Refresh those nodes.
      available.concat(refresh(needs_refresh))

      # Now return all the nodes that are available and participating in the
      # replica set.
      available.reject{ |node| node.down? }
    end
def nodes
      # Find the nodes that were down but are ready to be refreshed, or those
      # with stale connection information.
      needs_refresh, available = seeds.partition do |node|
        refreshable?(node)
      end

      # Refresh those nodes.
      available.concat(refresh(needs_refresh))

      # Now return all the nodes that are available and participating in the
      # replica set.
      available.reject{ |node| node.down? }
    end
Returns the list of available nodes, refreshing 1) any nodes which were
 down and ready to be checked again and 2) any nodes whose information is
 out of date. Arbiter nodes are not returned.

 @example Get the available nodes.
   cluster.nodes

 @return [ Array<Node> ] the list of available nodes.

 @since 1.0.0