Вы можете использовать регулярное выражение:
puts "SomeWordHere".gsub(/[a-zA-Z](?=[A-Z])/, '\0 ').downcase
Выход:
some word here
Одной из причин, по которой вы можете предпочесть это, является то, что ваш ввод может содержать тире или подчеркивание, и вы не хотите заменять их пробелами:
puts "Foo-BarBaz".underscore.gsub('_', ' ')
puts "Foo-BarBaz".gsub(/[a-zA-Z](?=[A-Z])/, '\0 ').downcase
Выход:
foo bar baz
foo-bar baz