class Fabrique::BeanDefinitionRegistry
Public Class Methods
new(definitions)
click to toggle source
# File lib/fabrique/bean_definition_registry.rb, line 11 def initialize(definitions) @defs = definitions.map { |d| d.is_a?(BeanDefinition) ? d : BeanDefinition.new(d) } end
Public Instance Methods
get_definition(bean_name)
click to toggle source
# File lib/fabrique/bean_definition_registry.rb, line 15 def get_definition(bean_name) @defs.detect { |d| d.id == bean_name } or raise MissingBeanError.new("missing bean #{bean_name.inspect}") end
get_definitions()
click to toggle source
# File lib/fabrique/bean_definition_registry.rb, line 19 def get_definitions @defs end
get_gem_definitions()
click to toggle source
# File lib/fabrique/bean_definition_registry.rb, line 23 def get_gem_definitions @defs.collect(&:gem).compact end
validate!()
click to toggle source
# File lib/fabrique/bean_definition_registry.rb, line 27 def validate! tsort rescue TSort::Cyclic => e raise CyclicBeanDependencyError.new(e.message.gsub(/topological sort failed/, "cyclic bean dependency error")) end
Private Instance Methods
tsort_each_child(node, &block)
click to toggle source
# File lib/fabrique/bean_definition_registry.rb, line 35 def tsort_each_child(node, &block) defn = get_definition(node) deps = defn.dependencies deps.map { |dep| dep.bean }.each(&block) end
tsort_each_node() { |id| ... }
click to toggle source
# File lib/fabrique/bean_definition_registry.rb, line 41 def tsort_each_node @defs.each do |dep| yield dep.id end end