Skip to main content
1 of 4
def compare_them (obj1, obj2)
  if obj1[0].nil? 
    if !obj2[0].nil?
      return obj1[1] <=> obj2[0]
    else 
      if obj2[1].nil?
        return obj1[1] <=> obj2[0]
      else
        return obj1[1] <=> obj2[1]
      end
    end
  else
    if obj2[0].nil?
      return obj1[0] <=> obj2[1]
    else
      return obj1[0] <=> obj2[0]  
    end
  end
end

foo = [[nil, 1], [nil, 3], [nil, 4], [nil, 5], [nil, 6], [nil, 7], [3, nil], [4, nil], [2, nil], [1, 2], [5, nil], [6, 8], [8, nil], [7, 9], [9, 10]]

foo.sort { |a1,a2| compare_them(a1, a2) }