Class: Tenantify::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/tenantify/middleware.rb,
lib/tenantify/middleware/builder.rb,
lib/tenantify/middleware/strategies.rb,
lib/tenantify/middleware/strategies/host.rb,
lib/tenantify/middleware/strategies/header.rb,
lib/tenantify/middleware/strategies/default.rb

Overview

Rack middleware responsible for setting the tenant during the http request.

This middleware builds a set of strategies from the given configuration, and sets the tenant returned from those strategies.

Defined Under Namespace

Classes: Builder, Strategies

Instance Method Summary collapse

Constructor Details

#initialize(app, config = Tenantify.configuration) ⇒ Middleware

Constructor.

Parameters:



14
15
16
17
# File 'lib/tenantify/middleware.rb', line 14

def initialize app, config = Tenantify.configuration
  @app    = app
  @config = config
end

Instance Method Details

#call(env) ⇒ rack_response

Calls the rack middleware.

Parameters:

  • the (rack_environment)

    Rack environment

Returns:

  • (rack_response)

    the Rack response



23
24
25
26
27
# File 'lib/tenantify/middleware.rb', line 23

def call env
  tenant = strategies.tenant_for(env)

  Tenant.using(tenant) { app.call(env) }
end