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