Module: Padrino::Routing::InstanceMethods
- Defined in:
- lib/appsignal/integrations/padrino.rb
Instance Method Summary collapse
- #get_payload_action(request) ⇒ Object
- #route!(base = settings, pass_block = nil) ⇒ Object
- #route_without_appsignal ⇒ Object
Instance Method Details
#get_payload_action(request) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/appsignal/integrations/padrino.rb', line 51 def get_payload_action(request) # Short-circut is there's no request object to obtain information from return "#{settings.name}" if request.nil? # Older versions of Padrino work with a route object route_obj = defined?(request.route_obj) && request.route_obj if route_obj && route_obj.respond_to?(:original_path) return "#{settings.name}:#{request.route_obj.original_path}" end # Newer versions expose the action / controller on the request class request_data = request.respond_to?(:action) ? request.action : request.fullpath "#{settings.name}:#{request.controller}##{request_data}" end |
#route!(base = settings, pass_block = nil) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/appsignal/integrations/padrino.rb', line 24 def route!(base=settings, pass_block=nil) if !Appsignal.active? || env['sinatra.static_file'] route_without_appsignal(base, pass_block) return end transaction = Appsignal::Transaction.create( SecureRandom.uuid, Appsignal::Transaction::HTTP_REQUEST, request ) begin ActiveSupport::Notifications.instrument('process_action.padrino') do route_without_appsignal(base, pass_block) end rescue => error transaction.set_error(error) raise error ensure transaction.set_action(get_payload_action(request)) transaction.('path', request.path) transaction.('method', request.request_method) transaction.set_http_or_background_queue_start Appsignal::Transaction.complete_current! end end |
#route_without_appsignal ⇒ Object
22 |
# File 'lib/appsignal/integrations/padrino.rb', line 22 alias route_without_appsignal route! |