Class: Dependency::Resolver

Inherits:
Object
  • Object
show all
Defined in:
lib/strong_ruby/dependency/resolver.rb

Constant Summary collapse

@@dependencies =
{}

Class Method Summary collapse

Class Method Details

.bind(class_name, object_constructor, is_singleton) ⇒ Object



6
7
8
9
10
11
# File 'lib/strong_ruby/dependency/resolver.rb', line 6

def self.bind(class_name, object_constructor, is_singleton)
  if dependencies[class_name]
    raise StandardError.new("Already has binding of class `#{class_name}`")
  end
  dependencies[class_name] = ResolverBinding.new(object_constructor, is_singleton)
end

.clear_bindingsObject



20
21
22
# File 'lib/strong_ruby/dependency/resolver.rb', line 20

def self.clear_bindings
  @@dependencies = {}
end

.dependenciesObject



4
# File 'lib/strong_ruby/dependency/resolver.rb', line 4

def self.dependencies; @@dependencies; end

.resolve(class_name) ⇒ Object



13
14
15
16
17
18
# File 'lib/strong_ruby/dependency/resolver.rb', line 13

def self.resolve(class_name)
  unless dependencies[class_name]
    raise StandardError.new("Can't find bind for class name `#{class_name}`")
  end
  dependencies[class_name].construct
end