From 7d3ce5646c2fa7b2b0944876460049c82a290242 Mon Sep 17 00:00:00 2001 From: Andrew Luchuk Date: Fri, 26 Sep 2025 23:39:41 -0400 Subject: [PATCH] Implement basic initializer --- lib/laradi.rb | 11 +---------- lib/laradi/middleware.rb | 12 ++++++++++++ lib/laradi/railtie.rb | 9 +++++++++ 3 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 lib/laradi/middleware.rb diff --git a/lib/laradi.rb b/lib/laradi.rb index 805964b..ec278d9 100644 --- a/lib/laradi.rb +++ b/lib/laradi.rb @@ -5,20 +5,11 @@ require "laradi/railtie" # require 'dry-auto_inject' module Laradi - # Your code goes here... - - LaradiInject = {} - - if method_defined?(:get_di_container) - container = get_di_container - - LaradiInject = Dry::AutoInject(container) - end module Mixin def dependencies(*deps) deps.each { |dep| - include LaradiInject[dep] + include $autoinject[dep] } end end diff --git a/lib/laradi/middleware.rb b/lib/laradi/middleware.rb new file mode 100644 index 0000000..a7179b2 --- /dev/null +++ b/lib/laradi/middleware.rb @@ -0,0 +1,12 @@ +module Laradi + class Middleware + + def initialize(app) + @app = app + end + + def call(env) + @app.call(env) + end + end +end \ No newline at end of file diff --git a/lib/laradi/railtie.rb b/lib/laradi/railtie.rb index c7050f6..55fb553 100644 --- a/lib/laradi/railtie.rb +++ b/lib/laradi/railtie.rb @@ -1,4 +1,13 @@ module Laradi class Railtie < ::Rails::Railtie + initializer "laradi.construct_di_container" do |app| + container = Dry::Core::Container.new + + if defined?(config.di_config) + config.di_config.call(container) + end + + $autoinject = Dry::AutoInject(container) + end end end