class SiteHub::Request
Attributes
env[R]
mapped_path[R]
mapped_url[R]
rack_request[R]
time[R]
Public Class Methods
new(env:)
click to toggle source
# File lib/sitehub/request.rb, line 20 def initialize(env:) @rack_request = Rack::Request.new(env) @env = HttpHeaders.from_rack_env(env) @time = Time.now end
Public Instance Methods
body()
click to toggle source
# File lib/sitehub/request.rb, line 35 def body rack_request.body.read end
headers()
click to toggle source
# File lib/sitehub/request.rb, line 39 def headers @env.tap do |headers| headers[X_FORWARDED_FOR_HEADER] = x_forwarded_for headers[X_FORWARDED_HOST_HEADER] = x_forwarded_host headers[HOST_HEADER] = if mapped? mapped_uri = URI(mapped_url) "#{mapped_uri.host}:#{mapped_uri.port}" end end end
http_version()
click to toggle source
# File lib/sitehub/request.rb, line 68 def http_version rack_env[RackHttpHeaderKeys::HTTP_VERSION] end
map(path, url)
click to toggle source
# File lib/sitehub/request.rb, line 26 def map(path, url) @mapped_path = path @mapped_url = url end
mapped?()
click to toggle source
# File lib/sitehub/request.rb, line 56 def mapped? mapped_path.is_a?(String) end
mapping()
click to toggle source
# File lib/sitehub/request.rb, line 52 def mapping RequestMapping.new(source_url: rack_request.url, mapped_url: mapped_url.to_s, mapped_path: mapped_path) end
remote_user()
click to toggle source
# File lib/sitehub/request.rb, line 60 def remote_user rack_request.env[RackHttpHeaderKeys::REMOTE_USER] end
request_method()
click to toggle source
# File lib/sitehub/request.rb, line 31 def request_method rack_request.request_method.downcase.to_sym end
source_address()
click to toggle source
# File lib/sitehub/request.rb, line 72 def source_address rack_env[RackHttpHeaderKeys::X_FORWARDED_FOR] || rack_env[RackHttpHeaderKeys::REMOTE_ADDR] end
transaction_id()
click to toggle source
# File lib/sitehub/request.rb, line 64 def transaction_id env[HttpHeaderKeys::TRANSACTION_ID] end
uri()
click to toggle source
# File lib/sitehub/request.rb, line 76 def uri mapping.computed_uri end
Private Instance Methods
rack_env()
click to toggle source
# File lib/sitehub/request.rb, line 84 def rack_env rack_request.env end
remote_address()
click to toggle source
# File lib/sitehub/request.rb, line 88 def remote_address rack_request.env[RackHttpHeaderKeys::REMOTE_ADDRESS_ENV_KEY] end
x_forwarded_for()
click to toggle source
# File lib/sitehub/request.rb, line 98 def x_forwarded_for StringUtils.split(env[HttpHeaderKeys::X_FORWARDED_FOR_HEADER]).push(remote_address).join(COMMA) end
x_forwarded_host()
click to toggle source
# File lib/sitehub/request.rb, line 92 def x_forwarded_host StringUtils.split(env[HttpHeaderKeys::X_FORWARDED_HOST_HEADER]) .push(env[HttpHeaderKeys::HOST_HEADER]) .join(COMMA) end