18.to_s.chars.map(&:to_i).reduce(:+) # => 9
123456789.to_s.chars.map(&:to_i).reduce(:+) # => 45
Ele transforma o número em uma string, divide-o em dígitos, transforma cada um em um inteiro e adiciona-os todos juntos.
Funciona com números de qualquer tamanho.