Class: Mendel::MinPriorityQueue
- Inherits:
-
Object
- Object
- Mendel::MinPriorityQueue
- Defined in:
- lib/mendel/min_priority_queue.rb
Instance Method Summary collapse
- #dump ⇒ Object
- #dump_json ⇒ Object
-
#initialize ⇒ MinPriorityQueue
constructor
A new instance of MinPriorityQueue.
- #length ⇒ Object
-
#load(items) ⇒ Object
TODO - make the load methods class methods.
- #load_json(json) ⇒ Object
- #pop ⇒ Object
- #push(item, priority) ⇒ Object
Constructor Details
#initialize ⇒ MinPriorityQueue
Returns a new instance of MinPriorityQueue.
8 9 10 |
# File 'lib/mendel/min_priority_queue.rb', line 8 def initialize self.wrapped_queue = PriorityQueue.new end |
Instance Method Details
#dump ⇒ Object
24 25 26 27 28 |
# File 'lib/mendel/min_priority_queue.rb', line 24 def dump [].tap {|items| items << pop while length > 0 } end |
#dump_json ⇒ Object
30 31 32 |
# File 'lib/mendel/min_priority_queue.rb', line 30 def dump_json JSON.dump(dump) end |
#length ⇒ Object
20 21 22 |
# File 'lib/mendel/min_priority_queue.rb', line 20 def length wrapped_queue.length end |
#load(items) ⇒ Object
TODO - make the load methods class methods
35 36 37 38 39 |
# File 'lib/mendel/min_priority_queue.rb', line 35 def load(items) items.each do |item| push(*item) end end |
#load_json(json) ⇒ Object
41 42 43 |
# File 'lib/mendel/min_priority_queue.rb', line 41 def load_json(json) load(JSON.parse(json)) end |
#pop ⇒ Object
16 17 18 |
# File 'lib/mendel/min_priority_queue.rb', line 16 def pop wrapped_queue.delete_min end |
#push(item, priority) ⇒ Object
12 13 14 |
# File 'lib/mendel/min_priority_queue.rb', line 12 def push(item, priority) wrapped_queue.push(item, priority) end |