class Injected::Instance
Public Class Methods
new(injections)
click to toggle source
# 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