By default, we don't watch ., .., .bundle, .git (this is HUGE), log, tmp and vendor (this is also HUGE). Also don't append '/' to the dir given to Guard::Listener#potentially_modified_files, the method now handles it internally.
In my case, Guard::Listener#potentially_modified_files was taking ~56 seconds (in a big Rails project), it takes now... less than 1 second.
Enjoy.
Now use modified_file method from listener api to ensure similar
behavior to the other platform. This change avoid unwanted behavior
when multiple events are raised for a file (like running tests more
one times).
Improve usage with several text editors that writes to temporal
files and then move over the original filename instead of write
files directly. Tested with GEdit, Nano, vim (with 'set backup'
and 'set nobackup') and emacs.
---
This change allows guard plugins (like guard-rspec) to pass options (like :priority) up to the Growl notifier. With this change, things like indirect/rspec-guard@d2f01d69a7 are possible, and the growl notification colors can be customized depending on the outcome of the spec run.
Conflicts:
lib/guard/notifier.rb
I basically went through all specs and applied the following rules:
* Use `describe` for methods and `context` for contexts.
* All class methods starts with `.` and instance methods with `#`.
* Removed all `it should`, because the specs _have to_.
* Applied a consistant naming on all listener specs.
* Make fixture usage more fail save by giving generous sleep times.
* Make all behaviour description non-technical and easy to understand.
The goal of this excercise was to have a documentation that is easy
readable and describes the behaviour and not the implementation.
Try it out by using the RSpec documentation format!
This is merely a guess, because all specs pass fine on the local machine but on Travis CI the next
spec that uses the fixtures fails. This might be a problem related to the rounding of the timestamps
in #file_modified?.