Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
skylight / lib / skylight / normalizers / action_controller / process_action.rb
Size: Mime:
module Skylight
  module Normalizers
    module ActionController
      class ProcessAction < Normalizer
        register "process_action.action_controller"

        CAT = "app.controller.request".freeze
        PAYLOAD_KEYS = %w[ controller action params format method path ].map(&:to_sym).freeze

        def normalize(trace, name, payload)
          trace.endpoint = controller_action(payload)
          [ CAT, trace.endpoint, nil, normalize_payload(payload) ]
        end

      private

        def controller_action(payload)
          "#{payload[:controller]}##{payload[:action]}"
        end

        def normalize_payload(payload)
          normalized = {}

          PAYLOAD_KEYS.each do |key|
            val = payload[key]
            val = val.inspect unless val.is_a?(String) || val.is_a?(Numeric)
            normalized[key] = val
          end

          normalized
        end
      end
    end
  end
end