lib/god/conditions/degrading_lambda.rb in resurrected_god-0.14.0 vs lib/god/conditions/degrading_lambda.rb in resurrected_god-1.0.0

- old
+ new

@@ -1,8 +1,7 @@ module God module Conditions - # This condition degrades its interval by a factor of two for 3 tries before failing class DegradingLambda < PollCondition attr_accessor :lambda def initialize @@ -15,38 +14,35 @@ valid &= complain("Attribute 'lambda' must be specified", self) if self.lambda.nil? valid end def test - puts "Calling test. Interval at #{self.interval}" - @original_interval ||= self.interval - unless pass? + puts "Calling test. Interval at #{interval}" + @original_interval ||= interval + if pass? + @tries = 0 + self.interval = @original_interval + else if @tries == 2 - self.info = "lambda condition was satisfied" + self.info = 'lambda condition was satisfied' return true end - self.interval = self.interval / 2.0 + self.interval = interval / 2.0 @tries += 1 - else - @tries = 0 - self.interval = @original_interval end - self.info = "lambda condition was not satisfied" + self.info = 'lambda condition was not satisfied' false end private - def pass? - begin - Timeout::timeout(@interval) { - self.lambda.call() - } - rescue Timeout::Error - false - end + def pass? + Timeout.timeout(@interval) do + self.lambda.call end + rescue Timeout::Error + false + end end - end end