Added application container

Necessary to register common application dependencies for potential injection as desired.
This commit is contained in:
Brooke Kuhlmann
2025-04-22 14:24:33 -06:00
parent 0dfdee3a9a
commit 7c8db493fd
3 changed files with 58 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
# frozen_string_literal: true
require "cogger"
require "containable"
require "http"
module TRMNL
module API
# Registers application dependencies.
module Container
extend Containable
register(:client) { API::Client.new }
register(:logger) { Cogger.new id: "trmnl-api", formatter: :json }
register :http do
HTTP.default_options = ::HTTP::Options.new features: {logging: {logger: self[:logger]}}
HTTP
end
namespace :contracts do
register :current_screen, Contracts::CurrentScreen
register :display, Contracts::Display
register :firmware, Contracts::Firmware
register :setup, Contracts::Setup
end
namespace :models do
register :current_screen, Models::CurrentScreen
register :display, Models::Display
register :firmware, Models::Firmware
register :setup, Models::Setup
end
end
end
end