Class: Containable::Vault
- Inherits:
-
Module
- Object
- Module
- Containable::Vault
- Defined in:
- lib/containable/vault.rb
Overview
Provides safe registration and resolution of dependencies.
Instance Method Summary collapse
- #extended(descendant) ⇒ Object
-
#initialize(dependencies = Concurrent::Hash.new, register: Register, resolver: Resolver) ⇒ Vault
constructor
A new instance of Vault.
Constructor Details
#initialize(dependencies = Concurrent::Hash.new, register: Register, resolver: Resolver) ⇒ Vault
Returns a new instance of Vault.
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/containable/vault.rb', line 8 def initialize dependencies = Concurrent::Hash.new, register: Register, resolver: Resolver super() @dependencies = dependencies @register = register.new dependencies @resolver = resolver.new dependencies private_methods.grep(/\A(define)_/).sort.each { |method| __send__ method } alias_method :[]=, :register alias_method :[], :resolve end |
Instance Method Details
#extended(descendant) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/containable/vault.rb', line 21 def extended descendant fail TypeError, "Only a module can be a container." if descendant.is_a? Class super descendant.class_eval "private_class_method :dependencies", __FILE__, __LINE__ end |