Sha256: a339ae16d348473dd883d3cdb0b56409793a5abf845145e8c563b793d136a751
Contents?: true
Size: 1.26 KB
Versions: 3
Compression:
Stored size: 1.26 KB
Contents
# frozen_string_literal: true require 'dry/auto_inject/builder' module Dry # Configure an auto-injection module # # @example # module MyApp # # set up your container # container = Dry::Container.new # # container.register(:data_store, -> { DataStore.new }) # container.register(:user_repository, -> { container[:data_store][:users] }) # container.register(:persist_user, -> { PersistUser.new }) # # # set up your auto-injection function # AutoInject = Dry::AutoInject(container) # # # define your injection function # def self.Inject(*keys) # AutoInject[*keys] # end # end # # # then simply include it in your class providing which dependencies should be # # injected automatically from the configured container # class PersistUser # include MyApp::Inject(:user_repository) # # def call(user) # user_repository << user # end # end # # persist_user = container[:persist_user] # # persist_user.call(name: 'Jane') # # @return [Proc] calling the returned proc builds an auto-injection module # # @api public def self.AutoInject(container, options = {}) AutoInject::Builder.new(container, options) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dry-auto_inject-0.7.0 | lib/dry/auto_inject.rb |
dry-auto_inject-0.6.1 | lib/dry/auto_inject.rb |
dry-auto_inject-0.6.0 | lib/dry/auto_inject.rb |