class Umbra::Encoder
Public Class Methods
call(env)
click to toggle source
# File lib/umbra/encoder.rb, line 5 def self.call(env) new(env).call end
new(env)
click to toggle source
# File lib/umbra/encoder.rb, line 9 def initialize(env) @env = env end
Public Instance Methods
call()
click to toggle source
# File lib/umbra/encoder.rb, line 13 def call @call ||= Pb::Message.new( method: rack_request.request_method, url: rack_request.url, body: request_body, headers: request_headers ).to_proto end
ignored_headers()
click to toggle source
# File lib/umbra/encoder.rb, line 22 def ignored_headers [] end
Private Instance Methods
rack_request()
click to toggle source
# File lib/umbra/encoder.rb, line 28 def rack_request @rack_request ||= Rack::Request.new(@env) end
request_body()
click to toggle source
# File lib/umbra/encoder.rb, line 44 def request_body @env.fetch("umbra.request_body") end
request_headers()
click to toggle source
# File lib/umbra/encoder.rb, line 32 def request_headers @request_headers ||= @env .select { |k, _| k.start_with?("HTTP_") && !ignored_headers.include?(k) } .merge(HEADER_KEY => HEADER_VALUE) .transform_keys { |k| to_http_header(k) } end
to_http_header(rack_header)
click to toggle source
# File lib/umbra/encoder.rb, line 40 def to_http_header(rack_header) rack_header.delete_prefix("HTTP_").downcase.split("_").join("-") end