class Roxanne::Loop

Public Class Methods

new(config) click to toggle source
# File lib/roxanne/loop.rb, line 3
def initialize(config)
  @config = config
end

Public Instance Methods

cycle() click to toggle source
# File lib/roxanne/loop.rb, line 7
def cycle
  if @config.activated
    status = :green
    @config.consumers.each do |consumer|
      actual = consumer.pull
      if actual == :red
        status = :red
        break
      elsif actual == :orange && @previous != :green
        status = :orange
      end
    end
    publish( @previous, status )
    @previous = status
  else
    @config.publisher.disable
  end
end
reset() click to toggle source
# File lib/roxanne/loop.rb, line 26
def reset
  @config.publisher.push(nil, nil)
end

Private Instance Methods

publish(previous, current) click to toggle source
# File lib/roxanne/loop.rb, line 31
def publish(previous, current)
  @config.publisher.push(previous, current)
end