2011-08-05 3 views
5

Je veux écrire un listeur (module ruby) pour identifier une création de fichier dans un dossier. Mon scénario est le suivantécrire un écouteur de changement de fichier dans ruby ​​

  • J'ai un dossier appelé (fichiers)
  • J'ai un projet de rails qui va créer un fichier (demo.txt) à l'intérieur le dossier ('fichier')
  • I besoin d'écrire un auditeur d'identifier le changement de fichiers et commencer à lire le fichier (demo.txt)

Je ne sais pas où commencer à créer ce module rubis. S'il vous plaît, quelqu'un peut-il m'aider à me diriger sur le bon chemin?

c'est la version rubis J'utilise Ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux] '

grâce à l'avance

acclamations

sameera

Répondre

7

Il existe quelques petites bibliothèques, que vous pouvez utiliser, apprendre ou construire, par exemple

outil de développement Agile qui surveille une arborescence de répertoires, et déclenche une action définie par l'utilisateur chaque fois modifié est un fichier observé. Son utilisation la plus typique est le test continu, et en tant que tel, c'est une alternative plus flexible à l'autotest.

L'observateur d'annuaire fonctionne par balayage d'un répertoire à un certain intervalle et générer une liste de fichiers sur la base d'un motif de glob fourni par l'utilisateur. Lorsque la liste de fichiers change d'un intervalle à l'autre, les événements sont générés et envoyés aux observateurs enregistrés. Trois types d'événements sont pris en charge: ajoutés, modifiés et supprimés.

Guard est un outil de ligne de commande pour gérer facilement des événements sur les modifications des fichiers (FSEvent/Inotify/support de vote).

Ceci est une simple enveloppe sur le sous-système du noyau Linux inotify pour surveiller les changements aux fichiers et répertoires. Il utilise la gemme FFI pour éviter de devoir compiler une extension C.

+0

Bonjour @miku, http: //codeforpeople.rubyforge.org/directory_watcher/semble être une bonne option, merci – sameera207