class Nestene::AutonExecutionQueue

Public Class Methods

new() click to toggle source
# File lib/nestene/auton_execution_queue.rb, line 9
def initialize
  self.to_execute = []
  self.executed = []
  self.delayed = []
end

Public Instance Methods

add_delayed(delayed_method) click to toggle source
# File lib/nestene/auton_execution_queue.rb, line 26
def add_delayed delayed_method
  delayed << delayed_method
  delayed.sort_by! {|x| x.execute_at}
end
add_delayed_method(name, parameters, delay, every = nil) click to toggle source
# File lib/nestene/auton_execution_queue.rb, line 15
def add_delayed_method name, parameters, delay, every = nil
  delayed_method = DelayedMethod.new
  delayed_method.uuid = SecureRandom.uuid
  delayed_method.name = name
  delayed_method.parameters = parameters
  delayed_method.execute_at = Time.now + delay
  delayed_method.every = every
  add_delayed(delayed_method)
  delayed_method
end
add_executed(executed) click to toggle source
# File lib/nestene/auton_execution_queue.rb, line 31
def add_executed executed
  self.executed.shift while self.executed.size >= 20
  self.executed << executed
end
remove_delayed_method(method_uuid) click to toggle source
# File lib/nestene/auton_execution_queue.rb, line 37
def remove_delayed_method method_uuid
  delayed.delete_if{|m| m.uuid == method_uuid}
end