Прежде всего, обратите внимание, что то, что вы пытаетесь сделать, будет только приблизительным.
Вы не можете правильно сказать, где находятся границы предложения. Вы можете аппроксимировать его как Начало всей строки или сразу после точки, вопросительного знака или восклицательного знака, за которым следуют пробелы. Но тогда вы будете неправильно использовать заглавную букву "экономика" в "экономике США".
Вы не можете правильно сказать, какие слова следует использовать с большой буквы. Например, «Джон» будет «Джон».
Возможно, вы захотите выполнить некоторую обработку на естественном языке, чтобы во многих случаях получить результат, близкий к правильному, но эти методы являются только вероятностно правильными. Вы никогда не получите идеальный результат.
Понимая эти ограничения, вы можете захотеть сделать:
mytext.gsub(/.*?(?:[.?!]\s+|\z)/, &:capitalize)