Class: Falcon::Redirection
- Inherits:
-
Async::HTTP::Middleware
- Object
- Async::HTTP::Middleware
- Falcon::Redirection
- Defined in:
- lib/falcon/redirection.rb
Instance Method Summary collapse
- #call(request) ⇒ Object
-
#initialize(app, hosts) ⇒ Redirection
constructor
A new instance of Redirection.
- #lookup(request) ⇒ Object
Constructor Details
#initialize(app, hosts) ⇒ Redirection
Returns a new instance of Redirection.
35 36 37 38 39 |
# File 'lib/falcon/redirection.rb', line 35 def initialize(app, hosts) super(app) @hosts = hosts end |
Instance Method Details
#call(request) ⇒ Object
48 49 50 51 52 53 54 55 56 |
# File 'lib/falcon/redirection.rb', line 48 def call(request) if endpoint = lookup(request) location = "https://#{request.authority}#{request.path}" return Async::HTTP::Response[301, {'location' => location}, []] else super end end |
#lookup(request) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/falcon/redirection.rb', line 41 def lookup(request) # Trailing dot and port is ignored/normalized. if = request..sub(/(\.)?(:\d+)?$/, '') return @hosts[] end end |