lib/ur/middleware.rb in ur-0.1.0 vs lib/ur/middleware.rb in ur-0.1.1
- old
+ new
@@ -1,5 +1,7 @@
+# frozen_string_literal: true
+
require 'ur' unless Object.const_defined?(:Ur)
class Ur
module Middleware
def initialize(app, options = {})
@@ -7,10 +9,19 @@
@options = options
end
attr_reader :app
attr_reader :options
+ def begin_request(ur)
+ ur.metadata.begin!
+ end
+
+ def finish_request(ur)
+ ur.logger_tags(@options[:logger])
+ ur.metadata.finish!
+ end
+
def invoke_callback(name, *a, &b)
if @options[name]
@options[name].call(*a, &b)
end
end
@@ -19,23 +30,25 @@
class FaradayMiddleware < ::Faraday::Middleware
include Ur::Middleware
def call(request_env)
ur = Ur.from_faraday_request(request_env)
invoke_callback(:before_request, ur)
- ur.logger = options[:logger] if options[:logger]
+ begin_request(ur)
ur.faraday_on_complete(@app, request_env) do |response_env|
+ finish_request(ur)
invoke_callback(:after_response, ur)
end
end
end
class RackMiddleware
include Ur::Middleware
def call(env)
ur = Ur.from_rack_request(env)
invoke_callback(:before_request, ur)
- ur.logger = options[:logger] if options[:logger]
+ begin_request(ur)
ur.with_rack_response(@app, env) do
+ finish_request(ur)
invoke_callback(:after_response, ur)
end
end
end
end