class Apartment::Elevators::Generic
Provides a rack based tenant switching solution based on request
Public Class Methods
new(app, processor = nil)
click to toggle source
# File lib/apartment/elevators/generic.rb, line 11 def initialize(app, processor = nil) @app = app @processor = processor || method(:parse_tenant_name) end
Public Instance Methods
call(env)
click to toggle source
# File lib/apartment/elevators/generic.rb, line 16 def call(env) request = Rack::Request.new(env) database = @processor.call(request) if database Apartment::Tenant.switch(database) { @app.call(env) } else @app.call(env) end end
parse_tenant_name(_request)
click to toggle source
# File lib/apartment/elevators/generic.rb, line 28 def parse_tenant_name(_request) raise 'Override' end