class Listen::Event::Queue

Attributes

block[R]
config[R]
event_queue[R]

Public Class Methods

new(config, &block) click to toggle source
# File lib/listen/event/queue.rb, line 16
def initialize(config, &block)
  @event_queue = ::Queue.new
  @block = block
  @config = config
end

Public Instance Methods

<<(args) click to toggle source
# File lib/listen/event/queue.rb, line 22
def <<(args)
  type, change, dir, path, options = *args
  fail "Invalid type: #{type.inspect}" unless [:dir, :file].include? type
  fail "Invalid change: #{change.inspect}" unless change.is_a?(Symbol)
  fail "Invalid path: #{path.inspect}" unless path.is_a?(String)

  dir = _safe_relative_from_cwd(dir)
  event_queue.public_send(:<<, [type, change, dir, path, options])

  block.call(args) if block
end
empty?() click to toggle source
# File lib/listen/event/queue.rb, line 34
def empty?
  event_queue.empty?
end
pop() click to toggle source
# File lib/listen/event/queue.rb, line 38
def pop
  event_queue.pop
end

Private Instance Methods

_safe_relative_from_cwd(dir) click to toggle source
# File lib/listen/event/queue.rb, line 48
def _safe_relative_from_cwd(dir)
  return dir unless config.relative?
  dir.relative_path_from(Pathname.pwd)
rescue ArgumentError
  dir
end