Здесь я приведу данные вашего примера в виде массива:
example_array = %w{2018-A-1 2018-A-10 2018-A-2 2018-A-100 2018-A-11 2018-B-1 2018-B-10 2018-B-2 2018-B-100 2018-A-11}
Мне не совсем понятно, какой порядок вы пытаетесь получить. Если вы пытаетесь отсортировать только на основе цифр после последнего дефиса, это должно сработать:
example_array.sort_by{|e| e.split("-").last.to_i }
Если вы также намереваетесь включить букву перед окончательным числом, возможно, это то, что вы хотите:
example_array.sort_by{|e| [e.split("-")[-2], e.split("-").last.to_i] }