lib/newark/request.rb in newark-0.0.5 vs lib/newark/request.rb in newark-0.0.6

- old
+ new

@@ -1,14 +1,17 @@ require 'active_support/hash_with_indifferent_access' +require 'securerandom' module Newark class Request < Rack::Request def uri uri = "#{scheme}://#{host_with_port}#{path_info}" uri << "?#{query_string}" unless query_string.empty? URI(uri) + rescue URI::InvalidURIError + URI(URI.escape(uri)) end def params @params ||= ActiveSupport::HashWithIndifferentAccess.new(super) end @@ -19,15 +22,20 @@ def headers @headers ||= original_headers end + def request_id + @env['action_dispatch.request_id'] || + (@env['rack.request_id'] ||= headers['X-Request-Id'] || SecureRandom.uuid) + end + protected def original_headers {}.tap do |headers| env.select { |k, v| k.start_with?('HTTP_') }.each_pair do |k, v| - header = k.sub(/^HTTP_/, '').split('_').map(&:capitalize).join('-') + header = k.sub(/^HTTP_/, '').gsub(/_/, '-').split('-').map(&:capitalize).join('-') headers[header] = v end end end end