Sha256: a17ba5350f30aebba85da67fb44712ac29c00945b973e580c711144495aca859

Contents?: true

Size: 777 Bytes

Versions: 2

Compression:

Stored size: 777 Bytes

Contents

# frozen_string_literal: true

module IIPolicy
  class LogSubscriber < ActiveSupport::LogSubscriber
    def calling(event)
      debug do
        policy = event.payload[:policy]
        action = event.payload[:action]
        "  Calling #{policy.class}##{action} with #{policy.context}"
      end
    end

    def call(event)
      debug do
        policy = event.payload[:policy]
        action = event.payload[:action]
        "  Called #{policy.class}##{action} and return #{policy._result} (#{additional_log(event)})"
      end
    end

    private

    def additional_log(event)
      additions = ["Duration: %.1fms" % event.duration]
      additions << "Allocations: %d" % event.allocations if event.respond_to?(:allocations)
      additions.join(', ')
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ii_policy-2.2.2 lib/ii_policy/log_subscriber.rb
ii_policy-2.2.1 lib/ii_policy/log_subscriber.rb