class GitQueue::Queue

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

<<(task)
Alias for: push
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