Class: Chaos::Injector

Inherits:
Object
  • Object
show all
Defined in:
lib/chaos/injector.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(modifier_factory) ⇒ Injector

Returns a new instance of Injector.



9
10
11
12
# File 'lib/chaos/injector.rb', line 9

def initialize(modifier_factory)
  @modifier_factory = modifier_factory
  @injections = []
end

Instance Attribute Details

#injectionsObject (readonly)

Returns the value of attribute injections.



2
3
4
# File 'lib/chaos/injector.rb', line 2

def injections
  @injections
end

Class Method Details

.build(logger:, random_numbers_generator: Kernel) ⇒ Object



5
6
7
# File 'lib/chaos/injector.rb', line 5

def self.build(logger:, random_numbers_generator: Kernel)
  new(Chaos::ModifierFactory.new(logger: logger, random_numbers_generator: random_numbers_generator))
end

Instance Method Details

#inject {|injection| ... } ⇒ Object

Yields:

  • (injection)


14
15
16
17
18
19
20
21
# File 'lib/chaos/injector.rb', line 14

def inject
  injection = Chaos::Injection.new
  yield injection
  injection.validate!
  injections << injection

  injection.target.prepend(build_module(injection))
end