Sha256: a897fb3ea3fd73f7f0301f8dafd437f27f9878ef93ebc48d9b91c3860a471104
Contents?: true
Size: 843 Bytes
Versions: 4
Compression:
Stored size: 843 Bytes
Contents
# frozen_string_literal: true require "dry/auto_inject/strategies" module Dry module AutoInject class Injector < BasicObject # @api private attr_reader :container # @api private attr_reader :strategy # @api private attr_reader :builder define_method(:respond_to?, ::Kernel.instance_method(:respond_to?)) # @api private def initialize(container, strategy, builder:) @container = container @strategy = strategy @builder = builder end def [](*dependency_names) strategy.new(container, *dependency_names) end def respond_to_missing?(name, _include_private = false) builder.respond_to?(name) end private def method_missing(name, *_args) builder.__send__(name) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems