class AmpelExtase::JenkinsWarningStateObserver
Public Class Methods
for_urls(*jenkins_urls)
click to toggle source
# File lib/ampel_extase/jenkins_warning_state_observer.rb, line 4 def self.for_urls(*jenkins_urls) if urls = jenkins_urls.full? new urls.map { |jenkins_url| AmpelExtase::JenkinsStateObserver.for_url(jenkins_url) } else Tins::NULL end end
new(observers)
click to toggle source
# File lib/ampel_extase/jenkins_warning_state_observer.rb, line 14 def initialize(observers) @observers = observers end
Public Instance Methods
check()
click to toggle source
# File lib/ampel_extase/jenkins_warning_state_observer.rb, line 22 def check @observers.each(&:check) end
expired?(duration)
click to toggle source
# File lib/ampel_extase/jenkins_warning_state_observer.rb, line 43 def expired?(duration) Time.now - last_failure_at > duration end
last_failure_at()
click to toggle source
# File lib/ampel_extase/jenkins_warning_state_observer.rb, line 38 def last_failure_at @observers.reject { |o| o.build_state.success? }. map(&:state_changed_at).max || Time.at(0) end
on_state_change(duration, &block)
click to toggle source
# File lib/ampel_extase/jenkins_warning_state_observer.rb, line 26 def on_state_change(duration, &block) @observers.each do |observer| observer.on_state_change do |state| if %w[ FAILURE ABORTED ].include?(state.last_result) block.(state) return end end end self end
reset()
click to toggle source
# File lib/ampel_extase/jenkins_warning_state_observer.rb, line 18 def reset @observers.each(&:reset) end