Harbor::Request
Attributes
Public Class Methods
Public Instance Methods
bot?()
# File lib/harbor/request.rb, line 59 59: def bot? 60: user_agent = env["HTTP_USER_AGENT"] 61: BOT_AGENTS.any? { |bot_agent| user_agent =~ bot_agent } 62: end
environment()
# File lib/harbor/request.rb, line 86 86: def environment 87: @env['APP_ENVIRONMENT'] || (@application ? @application.environment : "development") 88: end
fetch(key, default_value = nil)
# File lib/harbor/request.rb, line 51 51: def fetch(key, default_value = nil) 52: if (value = self[key]).nil? || value == '' 53: default_value 54: else 55: value 56: end 57: end
health_check?()
# File lib/harbor/request.rb, line 90 90: def health_check? 91: !params["health_check"].nil? 92: end
message(key)
# File lib/harbor/request.rb, line 137 137: def message(key) 138: messages[key] 139: end
messages()
# File lib/harbor/request.rb, line 133 133: def messages 134: @messages ||= session[:messages] = Messages.new(session[:messages]) 135: end
params()
# File lib/harbor/request.rb, line 94 94: def params 95: params = begin 96: if @env["rack.input"].nil? 97: self.GET 98: else 99: self.GET && self.GET.update(self.POST || {}) 100: end 101: rescue EOFError => e 102: self.GET 103: end 104: 105: params || {} 106: end
path()
Returns
| String: | The URI without the query string. Strips trailing “/” and reduces duplicate “/” to a single “/”. |
# File lib/harbor/request.rb, line 145 145: def path 146: path = (uri.empty? ? '/' : uri.split('?').first).squeeze("/") 147: path = path[0..-2] if (path[-1] == ?/) && path.size > 1 148: path 149: end
protocol()
# File lib/harbor/request.rb, line 117 117: def protocol 118: ssl? ? 'https://' : 'http://' 119: end
referer()
# File lib/harbor/request.rb, line 125 125: def referer 126: @env['HTTP_REFERER'] 127: end
remote_ip()
# File lib/harbor/request.rb, line 76 76: def remote_ip 77: # handling proxied environments 78: env["HTTP_X_FORWARDED_FOR"] || env["HTTP_CLIENT_IP"] || env["REMOTE_ADDR"] 79: end
request_method()
# File lib/harbor/request.rb, line 81 81: def request_method 82: @env['REQUEST_METHOD'] = self.POST['_method'].upcase if request_method_in_params? 83: @env['REQUEST_METHOD'] 84: end
route_captures()
holdover method until Harbor::Router moves to oniguruma and can use named captures
# File lib/harbor/request.rb, line 109 109: def route_captures 110: @route_captures || [] 111: end
route_captures=(value)
# File lib/harbor/request.rb, line 113 113: def route_captures=(value) 114: @route_captures = value 115: end
session(key = nil)
# File lib/harbor/request.rb, line 68 68: def session(key = nil) 69: @session ||= Harbor::Session.new(self, key) 70: end
ssl?()
# File lib/harbor/request.rb, line 121 121: def ssl? 122: @env['HTTPS'] == 'on' || @env['HTTP_X_FORWARDED_PROTO'] == 'https' 123: end