Sha256: 331e7137e36743d7b22e5134ee7867fbd0c166b81d525cd5fac44cfc49e26542

Contents?: true

Size: 680 Bytes

Versions: 2

Compression:

Stored size: 680 Bytes

Contents

# frozen_string_literal: true

module Appsignal
  module Rack
    # @api private
    class HanamiMiddleware < AbstractMiddleware
      def initialize(app, options = {})
        options[:request_class] ||= ::Hanami::Action::Request
        options[:params_method] ||= :params
        options[:instrument_span_name] ||= "process_action.hanami"
        super
      end

      private

      def params_for(request)
        super&.to_h
      end

      def request_for(env)
        params = ::Hanami::Action.params_class.new(env)
        @request_class.new(
          :env => env,
          :params => params,
          :sessions_enabled => true
        )
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
appsignal-3.9.2-java lib/appsignal/rack/hanami_middleware.rb
appsignal-3.9.2 lib/appsignal/rack/hanami_middleware.rb