class GitQueue::Queue
Attributes
name[R]
Public Class Methods
new(name)
click to toggle source
# File lib/git_queue/queue.rb, line 28 def initialize(name) @name = name @queue = [] end
Public Instance Methods
down(index)
click to toggle source
# File lib/git_queue/queue.rb, line 62 def down(index) sync return queue if index < 0 || @queue.size - 2 < index _switch(index, index + 1) store(@@switch_message.call(@queue[index + 1], @queue[index])) end
history(length = nil)
click to toggle source
# File lib/git_queue/queue.rb, line 69 def history(length = nil) @storage.history(length) end
pop()
click to toggle source
# File lib/git_queue/queue.rb, line 40 def pop sync ret = @queue.shift store(@@pop_message.call(ret)) ret end
push(task)
click to toggle source
# File lib/git_queue/queue.rb, line 33 def push(task) sync @queue << task store(@@push_message.call(task)) end
Also aliased as: <<
queue()
click to toggle source
# File lib/git_queue/queue.rb, line 73 def queue sync @queue.dup end
switch(l_index, r_index)
click to toggle source
# File lib/git_queue/queue.rb, line 47 def switch(l_index, r_index) sync return queue if l_index < 0 || @queue.size - 1 < l_index return queue if r_index < 0 || @queue.size - 1 < r_index _switch(l_index, r_index) store(@@switch_message.call(@queue[r_index], @queue[l_index])) end
up(index)
click to toggle source
# File lib/git_queue/queue.rb, line 55 def up(index) sync return queue if index <= 0 || @queue.size - 1 < index _switch(index, index - 1) store(@@switch_message.call(@queue[index - 1], @queue[index])) end
Private Instance Methods
_switch(r_index, l_index)
click to toggle source
# File lib/git_queue/queue.rb, line 96 def _switch(r_index, l_index) tmp = @queue[r_index] @queue[r_index] = @queue[l_index] @queue[l_index] = tmp end
init_storage(name)
click to toggle source
# File lib/git_queue/queue.rb, line 84 def init_storage(name) Storage.new(name) end
storage()
click to toggle source
# File lib/git_queue/queue.rb, line 80 def storage @storage ||= init_storage(name) end
store(message)
click to toggle source
# File lib/git_queue/queue.rb, line 92 def store(message) @queue = storage.store_queue(@queue, message) end
sync()
click to toggle source
# File lib/git_queue/queue.rb, line 88 def sync @queue = storage.load_queue end