module RequestResponseStats::ControllerConcern

Public Class Methods

included(base) click to toggle source
# File lib/request_response_stats/controller_concern.rb, line 7
def self.included(base)
  include RequestResponseStats

  base.class_eval do
    around_action :log_request_response_stats
    # before_action :log_request_response_stats_before
    # after_action :log_request_response_stats_end

    def log_request_response_stats
      if defined?(RR_INBOUND_STATS) && RR_INBOUND_STATS
        begin
          rrs = RequestResponse.new(request, response, {redis_connection: $redis, gather_stats: true, mongoid_doc_model: ReqResStat})
          rrs.capture_request_response_cycle_start_info
          if block_given?
            yield
          else
            raise StandardError, "No block received. Investigate!"
          end
          rrs.capture_request_response_cycle_end_info
        rescue Exception => ex
          rrs.try(:capture_request_response_cycle_error_info)
          raise ex
        end
      else
        yield
      end
    end

  end

end

Public Instance Methods

log_request_response_stats() { || ... } click to toggle source

before_action :log_request_response_stats_before after_action :log_request_response_stats_end

# File lib/request_response_stats/controller_concern.rb, line 15
def log_request_response_stats
  if defined?(RR_INBOUND_STATS) && RR_INBOUND_STATS
    begin
      rrs = RequestResponse.new(request, response, {redis_connection: $redis, gather_stats: true, mongoid_doc_model: ReqResStat})
      rrs.capture_request_response_cycle_start_info
      if block_given?
        yield
      else
        raise StandardError, "No block received. Investigate!"
      end
      rrs.capture_request_response_cycle_end_info
    rescue Exception => ex
      rrs.try(:capture_request_response_cycle_error_info)
      raise ex
    end
  else
    yield
  end
end