Sha256: 379caf85e338e6bccbe8a64dd4508079bb97b5155f2f9f49d2b6d20f77b4aef6

Contents?: true

Size: 1003 Bytes

Versions: 5

Compression:

Stored size: 1003 Bytes

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

class ExampleApp
  def call(env)
    ['200', {'Content-Type' => 'text/html', 'ExampleApp' => '0'}, ['A barebones rack app.']]
  end
end

class MiddlewareOne
  def initialize(app)
    @app = app
  end

  def call(env)
    advance_time(1)
    status, headers, body = @app.call(env)
    headers['MiddlewareOne'] = '1'

    advance_time(1)
    [status, headers, body]
  end
end

class MiddlewareTwo
  def initialize(app, tag, &blk)
    @app = app
    @tag = tag
    @block = blk
  end

  def call(env)
    advance_time(1)
    request = Rack::Request.new(env)

    if request.params['return-early']
      status, headers, body = '200', {}, ['Hi']
    else
      status, headers, body = @app.call(env)
    end

    headers['MiddlewareTwo'] = '2'
    headers['MiddlewareTwoTag'] = @tag

    @block.call(headers)

    [status, headers, body]
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
newrelic_rpm-3.9.4.245 test/multiverse/suites/rack/example_app.rb
newrelic_rpm-3.9.3.241 test/multiverse/suites/rack/example_app.rb
newrelic_rpm-3.9.2.239 test/multiverse/suites/rack/example_app.rb
newrelic_rpm-3.9.1.236 test/multiverse/suites/rack/example_app.rb
newrelic_rpm-3.9.0.229 test/multiverse/suites/rack/example_app.rb