class Guard::Internals::Queue

def process

Process the change queue, running tasks within the main Guard thread
def process
  actions = []
  changes = { modified: [], added: [], removed: [] }
  while pending?
    if (item = @queue.pop).first.is_a?(Symbol)
      actions << item
    else
      item.each { |key, value| changes[key] += value }
    end
  end
  _run_actions(actions)
  return if changes.values.all?(&:empty?)
  Runner.new.run_on_changes(*changes.values)
end