class EventQueue
Public Class Methods
new()
click to toggle source
# File lib/delve/event_queue.rb, line 2 def initialize @time = 0 @events = Array.new end
Public Instance Methods
add(event, time)
click to toggle source
# File lib/delve/event_queue.rb, line 11 def add(event, time) raise 'Unable to add a nil event' unless event raise 'Unable to schedule event with no time' unless time i = @events.length (0..@events.length - 1).each do |e| if @events[e][:time] > time i = e break end end @events.insert(i, { :event => event, :time => time }) end
clear()
click to toggle source
# File lib/delve/event_queue.rb, line 45 def clear @events = Array.new end
get()
click to toggle source
# File lib/delve/event_queue.rb, line 26 def get return nil unless @events.length > 0 e = @events.shift if e[:time] > 0 @time += e[:time] @events.each { |x| x[:time] -= e[:time] } end e[:event] end
remove(event)
click to toggle source
# File lib/delve/event_queue.rb, line 38 def remove(event) index = @events.index { |e| e[:event] == event } return false unless index @events.delete_at index true end
time()
click to toggle source
# File lib/delve/event_queue.rb, line 7 def time @time end