module ExtremeFeedbackDevice
Constants
- VERSION
Public Class Methods
environment()
click to toggle source
# File lib/extreme_feedback_device.rb, line 16 def environment ENV["EFD_ENV"] || "production" end
infinite_loop()
click to toggle source
# File lib/extreme_feedback_device.rb, line 65 def infinite_loop settings['infinite_loop'] ||= {} interval = settings.infinite_loop['sleep'] || 30 %w(INT TERM).each do |signal| trap(signal) do puts "\r\nReceived SIGINT - turning off all LEDs and exit ..." pi.leds_black! pi.leds_black! # ... just to be safe exit(0) end end while true run sleep(interval) end end
jenkins()
click to toggle source
# File lib/extreme_feedback_device.rb, line 24 def jenkins @jenkins ||= ExtremeFeedbackDevice::Jenkins.new(settings.jenkins.user, settings.jenkins.token, settings.jenkins.url) end
logger()
click to toggle source
# File lib/extreme_feedback_device.rb, line 8 def logger if settings['log'] @logger ||= ::Logger.new(settings.log.file, settings.log['keep'], settings.log['size']) else @logger ||= ::Logger.new(STDOUT) end end
pi()
click to toggle source
# File lib/extreme_feedback_device.rb, line 28 def pi @pi ||= ExtremeFeedbackDevice::Pi.new(settings.pi.num_leds, settings.spi['device']) end
run()
click to toggle source
# File lib/extreme_feedback_device.rb, line 32 def run jobs = jenkins.jobs num_leds = settings.pi.num_leds map_leds = settings.pi.map_leds num_leds.times do |led_idx| job_name = map_leds["i_#{led_idx}"] if job_name job = jobs.find { |job| job.name == job_name } if job if job.fail? pi.leds[led_idx] = ::Color::RGB::Red elsif job.unstable? pi.leds[led_idx] = ::Color::RGB::Yellow elsif job.success? pi.leds[led_idx] = ::Color::RGB::Green elsif job.inactive? pi.leds[led_idx] = ::Color::RGB::Grey elsif job.disabled? pi.leds[led_idx] = ::Color::RGB::Grey else # any other state pi.leds[led_idx] = ::Color::RGB::Black end else # no job with this name in jenkins pi.leds[led_idx] = ::Color::RGB::Black end else # no job associated with this led_idx pi.leds[led_idx] = ::Color::RGB::Black end end pi.write! end
settings()
click to toggle source
# File lib/extreme_feedback_device.rb, line 20 def settings @settings ||= ExtremeFeedbackDevice::Settings end