class ActiveSupport::Multibyte::Chars

def method_missing(method, *args, &block)

Forward all undefined methods to the wrapped string.
def method_missing(method, *args, &block)
  result = @wrapped_string.__send__(method, *args, &block)
  if method.end_with?("!")
    self if result
  else
    result.kind_of?(String) ? chars(result) : result
  end
end