Estoy desarrollando un motor personalizado usando this setup.Guardia no ve las actualizaciones de archivos
He creado el motor con
rails plugin new MyEngine --full
Luego he añadido rspec-rails
y guard-rspec
como dependencias de desarrollo con
s.add_development_dependency "rspec-rails"
s.add_development_dependency "guard-rspec"
en mi archivo gemspec.
Cuando ejecuto tanto rspec
como rake spec
(con o sin bundle exec
) mis especificaciones funcionan bien. Cuando ejecuto el comando guard
, sin embargo, ejecuta todas las especificaciones por primera vez y luego no hace nada. No detectará ningún cambio de archivo en toda la aplicación.
El Guardfile se genera como de costumbre con guard init spec
, aquí es su contenido
# A sample Guardfile
# More info at https://github.com/guard/guard#readme
guard 'rspec', :version => 2 do
watch(%r{^spec/.+_spec\.rb$})
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
watch('spec/spec_helper.rb') { "spec/" }
# Rails example
watch(%r{^spec/.+_spec\.rb$})
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
watch(%r{^spec/support/(.+)\.rb$}) { "spec/" }
watch('spec/spec_helper.rb') { "spec/" }
watch('config/routes.rb') { "spec/routing" }
watch('app/controllers/application_controller.rb') { "spec/controllers" }
# Capybara request specs
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
end
Si sigo una concha abierta con guardia de correr y lo hago de otra cáscara touch app/my_model.rb
no pasa nada. Lo mismo para cada otro archivo (patrón) enumerado en el archivo Guardfile.
¿Hay alguna forma de solucionar este tipo de problemas?
actualización He creado un nuevo proyecto (unos raíles uno) e instalado la gema guard-shell con este Guardfile
guard 'shell' do
watch(%r{(.*)}) {|m| `cat #{m[0]}` }
watch(%r{(.*)}) {|m| raise m.to_s }
end
Incluso en este caso, si puedo editar los archivos no pasa nada. Estoy empezando a pensar que el problema podría estar en otro lugar, tal vez en la gema rb-fsevents
. ¿Qué puedo verificar?
Tienes razón, actualizaré el archivo generado (predeterminado). Sin embargo, ese no es el problema. Ver mi edición a la pregunta. – Fabio
ah veo ... puedes correr de guardia con un indicador de --debug, pero supongo que probablemente ya lo has intentado. – numbers1311407
sí, lo intenté, gracias. Acabo de resolver con un reinicio del sistema, ver [mi respuesta] (http://stackoverflow.com/questions/7311405/guard-doesnt-see-file-updates/7312249#7312249). – Fabio