Methods

Class Public methods

new(app)

📝 Source code
# File actionpack/lib/action_dispatch/middleware/server_timing.rb, line 50
    def initialize(app)
      @app = app
      @subscriber = Subscriber.instance
      @subscriber.ensure_subscribed
    end
🔎 See on GitHub

Instance Public methods

call(env)

📝 Source code
# File actionpack/lib/action_dispatch/middleware/server_timing.rb, line 56
    def call(env)
      response = nil
      events = @subscriber.collect_events do
        response = @app.call(env)
      end

      headers = response[1]

      header_info = events.group_by(&:name).map do |event_name, events_collection|
        "%s;dur=%.2f" % [event_name, events_collection.sum(&:duration)]
      end

      if headers[ActionDispatch::Constants::SERVER_TIMING].present?
        header_info.prepend(headers[ActionDispatch::Constants::SERVER_TIMING])
      end
      headers[ActionDispatch::Constants::SERVER_TIMING] = header_info.join(", ")

      response
    end
🔎 See on GitHub