Ruby On Rails
2026-02-26 17:17 Diff
# lib/request_time_logger.rb class RequestTimeLogger attr_reader :app, :logger_indentificator def initialize(app, logger_indentificator = '*') @app = app @logger_indentificator = logger_indentificator end def call(env) dup._call(env) # Метод dup клонирует начальный объект # hash1 = {key: 'value', key2: 'value2'} # hash2 = hash1.dup # hash1.delete :key2 # pp hash1 # => {:key=>"value"} # pp hash2 # => {:key=>"value", :key2=>"value2"} end def _call(env) request_recieved_at = Time.now @status, @headers, @response = @app.call(env) request_handled_at = Time.now beauty_logging(request_handled_at - request_recieved_at) [@status, @headers, @response] end private def beauty_logging(time) Rails.logger.debug(logger_indentificator * 50) Rails.logger.debug("Request time: #{time}") Rails.logger.debug(logger_indentificator * 50) end end