ruby gem to watch file

J

Junkone

is there any gem that will watch for a file and if the file exists, or
changes, can trigger process or event. i am looking for something on
the windows platform only.
appreciate any help.
 
J

Junkone

Take a look at directory_watcher. It works on all platforms.

http://codeforpeople.rubyforge.org/directory_watcher/

Blessings,
TwP

i tried as you suggested and have a few q.
i am trying to run a ruby prog to execute if there is any new file in
a directory. i started out with the examples but am a little confused
on how to useit.
this prog seems to be looking at the current directory where it is
running and not where i had specificed it to watch with dw.glob.

appreciate any help.

seede


require 'directory_watcher'
dw = DirectoryWatcher.new '.', :pre_load => true
dw.glob = "c:\\temp\\scans\\" # is the directory i want to watch.
dw.add_observer {|*args| args.each {|event| puts event}}
dw.start
gets
dw.stop
 
S

Siep Korteling

Junkone said:
i tried as you suggested and have a few q.
i am trying to run a ruby prog to execute if there is any new file in
a directory. i started out with the examples but am a little confused
on how to useit.
this prog seems to be looking at the current directory where it is
running and not where i had specificed it to watch with dw.glob.

appreciate any help.

seede
(...)
Hm, I can't get it to work either (on WinXP).

require 'directory_watcher'
dw = DirectoryWatcher.new 'D:/temp/'
dw.interval=5
dw.add_observer {|*args| args.each {|event| puts event}}
dw.start
gets
dw.stop

It does display the files ("added 'D:/temp/Pink_Pajamas.amv'" etc), but
after that you can delete, add and edit files without directory_watcher
noticing anything. Is it broken on windows or am I doing something
wrong?

Regards,

Siep
 
T

Tim Pease

(...)
Hm, I can't get it to work either (on WinXP).

require 'directory_watcher'
dw =3D DirectoryWatcher.new 'D:/temp/'
dw.interval=3D5
dw.add_observer {|*args| args.each {|event| puts event}}
dw.start
gets
dw.stop

It does display the files ("added 'D:/temp/Pink_Pajamas.amv'" etc), =20=
but
after that you can delete, add and edit files without =20
directory_watcher
noticing anything. Is it broken on windows or am I doing something
wrong?

The whole program is blocking on the "gets".

On the windows platform, all threads block when reading from standard =20=

input. So the "gets" is causing all threads to wait including the =20
directory watcher thread.

Try replacing the "gets" with a "sleep 30" or some other time interval.

Blessings,
TwP=
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,780
Messages
2,569,608
Members
45,241
Latest member
Lisa1997

Latest Threads

Top