Имам настройка на guard (ruby gem) и изглежда, че работи на моя Mac и настройването на guard от guard-coffee и guard-shell изглежда работи добре. Ето свързания раздел от моя Guardfile по-долу
guard 'coffeescript', :input => 'src/javascripts', :output => 'public/javascripts'
guard 'shell' do
watch( %r{^public/.+\.(js|css)$} ) do |m|
puts m.inspect
if m[1] == 'js'
puts 'a js is new!'
else
puts 'a css is new!'
end
puts %x{ echo #{File.mtime(m[0])} }
end
end
Което изглежда извежда два пъти „a js е нов“, ако редактирам файл с coffeescript. С включено отстраняване на грешки изглежда, че работи след това
13:39:23 - DEBUG - Hook :run_on_changes_begin executed for Guard::CoffeeScript
13:39:23 - INFO - Compile src/javascripts/blah.coffee
13:39:23 - INFO - 01:39:23 PM Successfully generated public/javascripts/blah.js
["public/javascripts/blah.js", "js"]
a js is new!
и
13:39:23 - DEBUG - Hook :run_on_changes_end executed for Guard::CoffeeScript
["public/javascripts/blah.js", "js"]
a js is new!
Изглежда, че се задейства само веднъж, ако редактирам директно файла blah.js. Бях малко объркан от това как работят куките, мога ли да включа кука от друг предпазител? Трябва ли просто да стартирам този код в обратно извикване в гвардията на coffeescript? Опитвах се да използвам групи и да правя само частта с обвивката, ако бях в група и не исках да се налага да повтарям предпазителя за кафе в случай, че вместо това използвах обратно извикване.
Някакви мисли за това как мога да спра да задействам предпазителя на корпуса два пъти, когато този за кафе се задейства?