method_missing (ActiveSupport::Multibyte::Chars)

    # File lib/active_support/multibyte/chars.rb, line 78
        def method_missing(m, *a, &b)
          begin
            # Simulate methods with a ! at the end because we can't touch the enclosed string from the handlers.
            if m.to_s =~ /^(.*)\!$/ && handler.respond_to?($1)
              result = handler.send($1, @string, *a, &b)
              if result == @string
                result = nil
              else
                @string.replace result
              end
            elsif handler.respond_to?(m)
              result = handler.send(m, @string, *a, &b)
            else
              result = @string.send(m, *a, &b)
            end
          rescue Handlers::EncodingError
            @string.replace handler.tidy_bytes(@string)
            retry
          end

          if result.kind_of?(String)
            result.chars
          else
            result
          end
        end