class Chaos::Injector

Attributes

injections[R]
modifier_factory[R]

Public Class Methods

build(logger:, random_numbers_generator: Kernel) click to toggle source
# 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
new(modifier_factory) click to toggle source
# File lib/chaos/injector.rb, line 9
def initialize(modifier_factory)
  @modifier_factory = modifier_factory
  @injections = []
end

Public Instance Methods

inject() { |injection| ... } click to toggle source
# 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

Private Instance Methods

build_module(injection) click to toggle source
# File lib/chaos/injector.rb, line 25
def build_module(injection)
  modifier_factory.build_module(injection)
end