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