Ruby On Rails
Зарегистрируйтесь и получите доступ к этому и десяткам других курсов
# Инстанс Rails приложения Rails.application # Корневая директория приложения Rails.application.root # Запуск rack сервера # Смотрит на конфиг config.ru rackup rackup --help # Запуск Rack с указанием пути до файла конфигурации rackup config.ru
# Список миддлвар # https://guides.rubyonrails.org/rails_on_rack.html#internal-middleware-stack bin/rails middleware
# 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
Завершено
0 / 16