class Deque
Deque
is an inplementation of a [double ended queue] (en.wikipedia.org/wiki/Double-ended_queue) currently implemented using an array
Attributes
queue[RW]
Public Class Methods
new()
click to toggle source
# File lib/timetrap/deque.rb, line 6 def initialize @queue = [] end
Public Instance Methods
count()
click to toggle source
@return [FixNum] return count of objects in queue
# File lib/timetrap/deque.rb, line 32 def count return @queue.size end
first()
click to toggle source
@return [Object] return earliest object added
# File lib/timetrap/deque.rb, line 11 def first return @queue.last end
last()
click to toggle source
@return [Object] return most recent object added
# File lib/timetrap/deque.rb, line 16 def last return @queue.first end
pop()
click to toggle source
@return [FixNum] return most recent time added
# File lib/timetrap/deque.rb, line 27 def pop return @queue.shift end
push(time=Time.now.to_i)
click to toggle source
@param [FixNum] time time value to pushed into queue
# File lib/timetrap/deque.rb, line 21 def push(time=Time.now.to_i) @queue << time return time end
window(start_time, end_time)
click to toggle source
@param [FixNum] start_time beginning of time range for window @param [FixNum] end_time end of time range for window @return [Array] returns array of time entries contained in window
# File lib/timetrap/deque.rb, line 39 def window(start_time, end_time) ret = @queue.select {|data_time| data_time >= start_time && data_time <= end_time } return ret end