Sha256: b4674c7cdc0f4688b3aa9a98227d5f02f9d9ac45d7a8479af0186278a55cb9a5

Contents?: true

Size: 919 Bytes

Versions: 4

Compression:

Stored size: 919 Bytes

Contents

module Locomotive::Steam
  module Middlewares

    # Track the request into the current logger
    #
    class Logging

      include Concerns::Helpers

      attr_accessor_initialize :app

      def call(env)
        now = Time.now

        log "Started #{env['REQUEST_METHOD'].upcase} \"#{env['PATH_INFO']}\" at #{now}".light_white, 0
        log "Params: #{env.fetch('steam.request').params.inspect}"

        app.call(env).tap do |response|
          done_in_ms = ((Time.now - now) * 10000).truncate / 10.0
          log "Completed #{code_to_human(response.first)} in #{done_in_ms}ms\n\n".green
        end
      end

      protected

      def code_to_human(code)
        case code.to_i
        when 200 then '200 OK'
        when 301 then '301 Found'
        when 302 then '302 Found'
        when 404 then '404 Not Found'
        when 422 then '422 Unprocessable Entity'
        end
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
locomotivecms_steam-1.5.0.rc0 lib/locomotive/steam/middlewares/logging.rb
locomotivecms_steam-1.5.0.beta3 lib/locomotive/steam/middlewares/logging.rb
locomotivecms_steam-1.5.0.beta2 lib/locomotive/steam/middlewares/logging.rb
locomotivecms_steam-1.5.0.beta1 lib/locomotive/steam/middlewares/logging.rb