I'm trying to use the listen gem (https://github.com/guard/listen) to listen to specific files, but so far have only been able to get the base functionality of listening to whole directories working properly.
Here's an example of what I'm trying at the moment:
require "listen"
module FileTracker
filedir = "/home/user/dir"
filenames = [ "file1", "file2" ]
# Should only track 'file1' and 'file2' in this directory
listener = Listen.to(filedir, only: filenames) do |modified, added, removed|
puts "Updated: " + modified.first
end
listener.start
sleep
end
I have also tried simply specifying a single filename as a string for the only:
parameter, but that didn't work either.
My end goal is to be able to track a list of user-defined files in various directories for changes. I only want to track each specific file, not the the entire directory.
I wasn't paying attention to what I was doing here.
only:
clearly takes a regex, which I was obviously failing to construct and provide. Hopefully this can help someone else out who may need to uselisten
to watch or ignore specific files.Here is an example of my working solution: