Class: E20::Ops::Middleware::RevisionMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/e20/ops/middleware/revision_middleware.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, options = {}) ⇒ RevisionMiddleware

Returns a new instance of RevisionMiddleware.



6
7
8
9
10
11
12
13
# File 'lib/e20/ops/middleware/revision_middleware.rb', line 6

def initialize(app, options = {})
  @app = app
  @revision = options[:revision] || Revision.new

  if (logger = options[:logger])
    logger.info "[#{self.class.name}] Running: #{@revision}"
  end
end

Instance Method Details

#call(env) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/e20/ops/middleware/revision_middleware.rb', line 15

def call(env)
  if env["PATH_INFO"] == "/system/revision"
    body = "#{@revision}\n"
    [200, { "Content-Type" => "text/plain", "Content-Length" => body.size.to_s }, body]
  else
    status, headers, body = @app.call(env)
    headers["X-Revision"] = @revision.to_s
    [status, headers, body]
  end
end