Sha256: 721cb34469103fb45e37731d205454c137caf94f1556369ac5e0d97b5f3f7d6c
Contents?: true
Size: 1.17 KB
Versions: 3
Compression:
Stored size: 1.17 KB
Contents
module Listen module Event class Queue class Config def initialize(relative) @relative = relative end def relative? @relative end end def initialize(config, &block) @event_queue = Thread::Queue.new @block = block @config = config end 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 def empty? event_queue.empty? end def pop event_queue.pop end private attr_reader :event_queue attr_reader :block attr_reader :config def _safe_relative_from_cwd(dir) return dir unless config.relative? dir.relative_path_from(Pathname.pwd) rescue ArgumentError dir end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
listen-3.0.2 | lib/listen/event/queue.rb |
listen-3.0.1 | lib/listen/event/queue.rb |
listen-3.0.0 | lib/listen/event/queue.rb |