class Reline::KeyStroke
def expand(input)
def expand(input) input = compress_meta_key(input) lhs = key_mapping.keys.select { |item| start_with?(input, item) }.sort_by(&:size).last return input unless lhs rhs = key_mapping[lhs] case rhs when String rhs_bytes = rhs.bytes expand(expand(rhs_bytes) + expand(input.drop(lhs.size))) when Symbol [rhs] + expand(input.drop(lhs.size)) when Array rhs end end