diff --git a/lib/trmnl/api/requester.rb b/lib/trmnl/api/requester.rb index 572fc83..950a519 100644 --- a/lib/trmnl/api/requester.rb +++ b/lib/trmnl/api/requester.rb @@ -8,14 +8,13 @@ module TRMNL # Provides a low level configurable and monadic API client. # :reek:DataClump class Requester + include Dependencies[:settings, :http] include Dry::Monads[:result] HEADERS = {}.freeze - def initialize settings: TRMNL::API::Configuration::Loader.new.call, http: HTTP - @settings = settings - @http = http - + def initialize(**) + super yield settings if block_given? end diff --git a/spec/lib/trmnl/api/requester_spec.rb b/spec/lib/trmnl/api/requester_spec.rb index 1d75e10..dc953ea 100644 --- a/spec/lib/trmnl/api/requester_spec.rb +++ b/spec/lib/trmnl/api/requester_spec.rb @@ -7,7 +7,11 @@ RSpec.describe TRMNL::API::Requester do subject(:requester) { described_class.new http: } + include_context "with application dependencies" + describe "#initialize" do + let(:http) { HTTP } + it "initializes with block" do requester = described_class.new { |settings| settings.content_type = "application/xml" } body = requester.get("bogus").failure.to_s