Method: Injected::Instance#initialize
- Defined in:
- lib/injected/instance.rb
#initialize(injections) ⇒ Instance
rubocop:disable Metrics/AbcSize
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/injected/instance.rb', line 7 def initialize(injections) # rubocop:disable Metrics/AbcSize self.class.injected_interfaces&.each do |interface, attribute| interface.interface_methods.keys.each do |interface_method| raise ArgumentError, "#{self.class} unment dependency #{interface}" unless injections.key?(interface) next if injections[interface].instance_methods.include?(interface_method) raise ArgumentError, "Implementation #{injections[interface]} does not implement #{interface_method}" end instance_variable_set("@#{attribute}", injections[interface].new) end end |