class Lamby::Rack

Constants

HTTP_X_REQUESTID
LAMBDA_CONTEXT
LAMBDA_EVENT

Attributes

context[R]
event[R]

Public Class Methods

new(event, context) click to toggle source
# File lib/lamby/rack.rb, line 12
def initialize(event, context)
  @event = event
  @context = context
end

Public Instance Methods

alb?() click to toggle source
# File lib/lamby/rack.rb, line 29
def alb?
  false
end
api?() click to toggle source
# File lib/lamby/rack.rb, line 25
def api?
  false
end
env() click to toggle source
# File lib/lamby/rack.rb, line 17
def env
  @env ||= env_base.merge!(env_headers)
end
multi_value?() click to toggle source
# File lib/lamby/rack.rb, line 33
def multi_value?
  false
end
response(_handler) click to toggle source
# File lib/lamby/rack.rb, line 21
def response(_handler)
  {}
end

Private Instance Methods

base64_encoded?() click to toggle source
# File lib/lamby/rack.rb, line 76
def base64_encoded?
  event['isBase64Encoded']
end
body() click to toggle source
# File lib/lamby/rack.rb, line 60
def body
  @body ||= if event['body'] && base64_encoded?
    Base64.decode64 event['body']
  else
    event['body']
  end
end
content_length() click to toggle source
# File lib/lamby/rack.rb, line 55
def content_length
  bytesize = body.bytesize.to_s if body
  headers.delete('Content-Length') || headers.delete('content-length') || headers.delete('CONTENT_LENGTH') || bytesize
end
content_type() click to toggle source
# File lib/lamby/rack.rb, line 51
def content_type
  headers.delete('Content-Type') || headers.delete('content-type') || headers.delete('CONTENT_TYPE')
end
env_base() click to toggle source
# File lib/lamby/rack.rb, line 39
def env_base
  raise NotImplementedError
end
env_headers() click to toggle source
# File lib/lamby/rack.rb, line 43
def env_headers
  headers.transform_keys do |key|
    "HTTP_#{key.to_s.upcase.tr '-', '_'}"
  end.tap do |hdrs|
    hdrs[HTTP_X_REQUESTID] = request_id
  end
end
headers() click to toggle source
# File lib/lamby/rack.rb, line 68
def headers
  @headers ||= event['headers'] || {}
end
query_string() click to toggle source
# File lib/lamby/rack.rb, line 72
def query_string
  @query_string ||= event['queryStringParameters'].try(:to_query)
end
request_id() click to toggle source
# File lib/lamby/rack.rb, line 80
def request_id
  context.aws_request_id
end