lib/trmnl/api/configuration/loader.rb
# frozen_string_literal: true module TRMNL module API module Configuration # Loads configuration based on environment or falls back to defaults. class Loader def initialize model: Content, environment: ENV @model = model @environment = environment end def call model[ content_type: environment.fetch("TRMNL_API_CONTENT_TYPE", "application/json"), timeout_connect: environment.fetch("TRMNL_API_TIMEOUT_CONNECT", 2).to_i, timeout_read: environment.fetch("TRMNL_API_TIMEOUT_READ", 10).to_i, timeout_write: environment.fetch("TRMNL_API_TIMEOUT_WRITE", 10).to_i, uri: environment.fetch("TRMNL_API_URI", "https://trmnl.com/api"), user_agent: "http.rb/#{HTTP::VERSION} (#{default_user_agent})" ] end private attr_reader :model, :environment def default_user_agent environment.fetch "TRMNL_API_USER_AGENT", TRMNL::API.name.gsub("::", " ") end end end end end