class Chaos::Injection

Constants

ATTRIBUTES

Attributes

instability_factory[R]

Public Class Methods

new(instability_factory: Chaos::InstabilityFactory.new) click to toggle source
# File lib/chaos/injection.rb, line 9
def initialize(instability_factory: Chaos::InstabilityFactory.new)
  @instability_factory = instability_factory
end

Public Instance Methods

execute_if() click to toggle source
# File lib/chaos/injection.rb, line 23
def execute_if
  @execute_if || ->(_arg) { true }
end
execute_if=(val) click to toggle source
# File lib/chaos/injection.rb, line 27
def execute_if=(val)
  raise "is not a lambda-like object" if !val.respond_to?(:call)
  @execute_if = val
end
instability() click to toggle source
# File lib/chaos/injection.rb, line 19
def instability
  instability_factory.build(instability_type)
end
validate!() click to toggle source
# File lib/chaos/injection.rb, line 13
def validate!
  ATTRIBUTES.each do |attribute|
    present?(public_send(attribute)) or raise ":#{attribute} is not set!"
  end
end

Private Instance Methods

present?(value) click to toggle source
# File lib/chaos/injection.rb, line 34
def present?(value)
  !value.nil?
end