class Apartment::Elevators::Subdomain

Provides a rack based db switching solution based on subdomains Assumes that database name should match subdomain

Public Class Methods

new(app) click to toggle source
# File lib/apartment/elevators/subdomain.rb, line 7
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# 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) click to toggle source
# File lib/apartment/elevators/subdomain.rb, line 21
def subdomain(request)
  request.subdomain.present? && request.subdomain || nil
end