I know convention over configuration is common in Ruby programming, but it strikes me that the API of the Faraday object being constructed does not *always* require an adapter as a strong dependency. Forgive my Java:
new Faraday(new FaradayDefaultAdapter()).addMiddleware(...)
I think this "defaulting" is leading you to some strong coupling to the Adapter, which we know can be a problem if you want to unit test your requests. The documentation shows you'll need to pass in a test Adapter:
test = Faraday.new do |builder|
builder.adapter :test
end
(there is also the now-classic problem of accidentally charging a real credit card during test runs: http://misko.hevery.com/200... describes it better than me)