Class: Saasable::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/saasable/middleware.rb

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ Middleware

Returns a new instance of Middleware.



2
3
4
5
6
7
# File 'lib/saasable/middleware.rb', line 2

def initialize app
  @app = app

  # Loads all models so we know how to apply the scopes on Rails
  Rails::Mongoid.load_models(Rails.application) if defined?(Rails::Mongoid)
end

Instance Method Details

#call(env) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/saasable/middleware.rb', line 9

def call env
  env[:saasable] = {:current_saas => saas_for_host(env["SERVER_NAME"])}
  env[:saasable][:current_saas].activate! if env[:saasable][:current_saas]

  @app.call(env).tap do
    env[:saasable][:current_saas].deactivate! if env[:saasable][:current_saas]
  end
end