Class: AmpelExtase::JenkinsWarningStateObserver
- Inherits:
-
Object
- Object
- AmpelExtase::JenkinsWarningStateObserver
- Defined in:
- lib/ampel_extase/jenkins_warning_state_observer.rb
Class Method Summary collapse
Instance Method Summary collapse
- #check ⇒ Object
- #expired?(duration) ⇒ Boolean
-
#initialize(observers) ⇒ JenkinsWarningStateObserver
constructor
A new instance of JenkinsWarningStateObserver.
- #last_failure_at ⇒ Object
- #on_state_change(duration, &block) ⇒ Object
Constructor Details
#initialize(observers) ⇒ JenkinsWarningStateObserver
Returns a new instance of JenkinsWarningStateObserver.
14 15 16 |
# File 'lib/ampel_extase/jenkins_warning_state_observer.rb', line 14 def initialize(observers) @observers = observers end |
Class Method Details
.for_urls(*jenkins_urls) ⇒ Object
4 5 6 7 8 9 10 11 12 |
# 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 |
Instance Method Details
#check ⇒ Object
18 19 20 |
# File 'lib/ampel_extase/jenkins_warning_state_observer.rb', line 18 def check @observers.each(&:check) end |
#expired?(duration) ⇒ Boolean
39 40 41 |
# File 'lib/ampel_extase/jenkins_warning_state_observer.rb', line 39 def expired?(duration) Time.now - last_failure_at > duration end |
#last_failure_at ⇒ Object
34 35 36 37 |
# File 'lib/ampel_extase/jenkins_warning_state_observer.rb', line 34 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) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/ampel_extase/jenkins_warning_state_observer.rb', line 22 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 |