Sha256: 64bfcfc705dc559dd529583af912df5a97761458da81337ea942841b3b5de68f
Contents?: true
Size: 894 Bytes
Versions: 6
Compression:
Stored size: 894 Bytes
Contents
# frozen_string_literal: true require 'dry/auto_inject/strategies' require 'dry/auto_inject/injector' module Dry module AutoInject class Builder < BasicObject # @api private attr_reader :container # @api private attr_reader :strategies def initialize(container, options = {}) @container = container @strategies = options.fetch(:strategies) { Strategies } end # @api public def [](*dependency_names) default[*dependency_names] end def respond_to?(name, include_private = false) Builder.public_instance_methods.include?(name) || strategies.key?(name) end private def method_missing(name, *args, &block) if strategies.key?(name) Injector.new(container, strategies[name], builder: self) else super end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems