one interesting method in ruby is `sort_by` which allows you to write it as `slots = slots.sort_by { |a| a[:region][1] }`
but I see that you want other order as you switch a and b, so possible solution can be to use `slots = slots.sort_by { |a| -a[:region][1] }` - http://apidock.com/ruby/Enumerable/sort_by

and one more trick if you do not care about reference that is passed you can use `!` variant, but it depends if you really want to modify parameter or not