class Crashbreak::RequestParser

Public Class Methods

new(request_data) click to toggle source
# File lib/crashbreak/request_parser.rb, line 3
def initialize(request_data)
  @request = request_data
end

Public Instance Methods

request_data() { |request_method_sym, request_path, request_body, request_headers| ... } click to toggle source
# File lib/crashbreak/request_parser.rb, line 7
def request_data
  yield(request_method_sym, request_path, request_body, request_headers)
end

Private Instance Methods

request_body() click to toggle source
# File lib/crashbreak/request_parser.rb, line 21
def request_body
  JSON.parse(request_hash_as_string.gsub('=>', ':')).symbolize_keys
end
request_hash_as_string() click to toggle source
# File lib/crashbreak/request_parser.rb, line 25
def request_hash_as_string
  @request['rack.request.form_hash'] || @request['RAW_POST_DATA'] || '{}'
end
request_headers() click to toggle source
# File lib/crashbreak/request_parser.rb, line 29
def request_headers
  {}.tap do |request_headers|
    @request.select{|key| key.start_with?('HTTP_')}.each do |key, value|
      request_headers[key.gsub('HTTP_', '')] = value
    end
  end
end
request_method_sym() click to toggle source
# File lib/crashbreak/request_parser.rb, line 13
def request_method_sym
  @request['REQUEST_METHOD'].underscore.to_sym
end
request_path() click to toggle source
# File lib/crashbreak/request_parser.rb, line 17
def request_path
  @request['PATH_INFO']
end