Sha256: ba5899c00eaed30d3c70f9f0caa60f8a06a7fa77f08b340b649f1b8374b9fa69

Contents?: true

Size: 959 Bytes

Versions: 2

Compression:

Stored size: 959 Bytes

Contents

# encoding: utf-8

module PagesCore
  module ProcessTitler
    extend ActiveSupport::Concern

    included do
      before_action :set_process_title
      after_action :unset_process_title
    end

    class << self
      attr_accessor :number_of_requests

      def original_title
        @original_title ||= $PROGRAM_NAME
      end

      def inc_number_of_requests
        @number_of_requests ||= 0
        @number_of_requests += 1
        yield @number_of_requests
      end

      def number_of_requests
        @number_of_requests ||= 0
      end
    end

    protected

    def set_process_title
      PagesCore::ProcessTitler.inc_number_of_requests do |i|
        $0 = PagesCore::ProcessTitler.original_title +
          ": Handling #{request.path} (#{i} reqs)"
      end
    end

    def unset_process_title
      $0 = PagesCore::ProcessTitler.original_title +
        ": Idle (#{PagesCore::ProcessTitler.number_of_requests} reqs)"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pages_core-3.4.3 app/controllers/concerns/pages_core/process_titler.rb
pages_core-3.4.2 app/controllers/concerns/pages_core/process_titler.rb