Grest

require 'levenshtein'
require 'soundex'

wrd = 'GREST'.chars #   KEYWORD
great = 'GREAT'.chars # VALUE

diff = (great - wrd).first # A

idx = Levenshtein.distance(wrd.join, great.join) # NO OF SHIFTS

idx.times { wrd.shift }

wrd.unshift(diff) # INSERT DIFF

# SOUNDEX ARREST?
p ((Soundex.new wrd.join).to_s == (Soundex.new 'ARREST').to_s) ? 'YEP' : 'NO'