module GRPCWeb::TextCoder

Placeholder

Public Class Methods

decode_request(request) click to toggle source
# File lib/grpc_web/server/text_coder.rb, line 13
def decode_request(request)
  return request unless BASE64_CONTENT_TYPES.include?(request.content_type)

  # Body can be several base64 "chunks" concatenated together
  base64_chunks = request.body.scan(%r{[a-zA-Z0-9+/]+={0,2}})
  decoded = base64_chunks.map { |chunk| Base64.decode64(chunk) }.join
  ::GRPCWeb::GRPCWebRequest.new(
    request.service, request.service_method, request.content_type, request.accept, decoded,
  )
end
encode_response(response) click to toggle source
# File lib/grpc_web/server/text_coder.rb, line 24
def encode_response(response)
  return response unless BASE64_CONTENT_TYPES.include?(response.content_type)

  encoded = Base64.strict_encode64(response.body)
  ::GRPCWeb::GRPCWebResponse.new(response.content_type, encoded)
end