Class: Apartment::Elevators::Subdomain
- Inherits:
-
Object
- Object
- Apartment::Elevators::Subdomain
- Defined in:
- lib/apartment/elevators/subdomain.rb
Overview
Provides a rack based db switching solution based on subdomains Assumes that database name should match subdomain
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ Subdomain
constructor
A new instance of Subdomain.
- #subdomain(request) ⇒ Object
Constructor Details
#initialize(app) ⇒ Subdomain
Returns a new instance of Subdomain.
7 8 9 |
# File 'lib/apartment/elevators/subdomain.rb', line 7 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'lib/apartment/elevators/subdomain.rb', line 11 def call(env) request = ActionDispatch::Request.new(env) database = subdomain(request) Apartment::Database.switch database if database @app.call(env) end |
#subdomain(request) ⇒ Object
21 22 23 |
# File 'lib/apartment/elevators/subdomain.rb', line 21 def subdomain(request) request.subdomain.present? && request.subdomain || nil end |