Class: Floodgate::Control

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

Instance Method Summary collapse

Constructor Details

#initialize(app, filter_traffic = false) ⇒ Control

Returns a new instance of Control.



5
6
7
8
# File 'lib/floodgate.rb', line 5

def initialize(app, filter_traffic=false)
  @filter_traffic = filter_traffic
  @app = app
end

Instance Method Details

#call(env) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/floodgate.rb', line 10

def call(env)
  return @app.call(env) unless @filter_traffic

  if maintenance_url = env['MAINTENANCE_PAGE_URL']
    [307, { 'Location' => maintenance_url }, []]
  else
    [503, {}, ['Application Unavailable']]
  end
end