Class: Lifesaver::Notification::TraversalQueue

Inherits:
Object
  • Object
show all
Defined in:
lib/lifesaver/notification/traversal_queue.rb

Instance Method Summary collapse

Constructor Details

#initializeTraversalQueue

Returns a new instance of TraversalQueue.



4
5
6
7
# File 'lib/lifesaver/notification/traversal_queue.rb', line 4

def initialize
  @visited_models = {}
  @queue = []
end

Instance Method Details

#<<(model) ⇒ Object



19
20
21
# File 'lib/lifesaver/notification/traversal_queue.rb', line 19

def <<(model)
  push(model)
end

#empty?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/lifesaver/notification/traversal_queue.rb', line 27

def empty?
  queue.empty?
end

#popObject



23
24
25
# File 'lib/lifesaver/notification/traversal_queue.rb', line 23

def pop
  queue.shift
end

#push(model) ⇒ Object



13
14
15
16
17
# File 'lib/lifesaver/notification/traversal_queue.rb', line 13

def push(model)
  return if model_visited?(model)
  visit_model(model)
  queue << model
end

#sizeObject



9
10
11
# File 'lib/lifesaver/notification/traversal_queue.rb', line 9

def size
  queue.size
end