module LunaPark::Extensions::Injector::InstanceMethods
Public Instance Methods
dependencies()
click to toggle source
List instance defined dependencies, in default it defined in class methods.
class SetActive dependency(:repo) { Repo.new(CONFIG[:db_connect]) } dependency(:messenger) { Messenger } end use_case = SetActive.new(user_id: 1) # All dependencies use_case.dependencies # => { # :repo=>#<Proc:0x0000564a0d90d668@t.rb:33>, # :messenger=>#<Proc:0x0000564a0d90d438@t.rb:34> # } # Single dependency use_case.dependencies[:messenger] # => #<Proc:0x0000564a0d90d438@t.rb:34> # Dependency value use_case.messenger # => Messenger
# File lib/luna_park/extensions/injector.rb, line 175 def dependencies @dependencies ||= Dependencies.wrap(self.class.dependencies) end
dependencies=(value)
click to toggle source
Setter - highly recommended for use in specs so you don't forget to override all dependencies.
use_case.dependencies = { repo: -> { Fake::Repo.new } } use_case.messenger # => Dependency `messenger` is undefined (LunaPark::Errors::DependencyUndefined) use_case.call # => Dependency `messenger` is undefined (LunaPark::Errors::DependencyUndefined) # Redefine single dependency still possible use_case.dependencies[:messenger] = -> { Messenger }
# File lib/luna_park/extensions/injector.rb, line 191 def dependencies=(value) @dependencies = Dependencies.wrap(value) end