Guard
https://github.com/guard/guard
Guard 使用视频
http://railscasts.com/episodes/264-guard
Guard列表
https://github.com/guard/guard/wiki/List-of-available-Guards
# bash
bundle
guard init rspec
guard init livereload
guard
# Gemfile
group :development, :test do
# ...
gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i
gem 'guard-rspec'
gem 'guard-livereload'
end
# Guardfile
guard 'livereload' do
watch(%r{app/.+\.(erb|haml)})
watch(%r{app/helpers/.+\.rb})
watch(%r{public/.+\.(css|js|html)})
watch(%r{config/locales/.+\.yml})
end
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('spec/spec_helper.rb') { "spec" }
watch('config/routes.rb') { "spec/routing" }
watch('app/controllers/application_controller.rb') { "spec/controllers" }
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/requests/#{m[1]}_spec.rb"] }
watch(%r{^app/views/(.+)/}) { |m| "spec/requests/#{m[1]}_spec.rb" }
end
# guard-sass
监听 sass 文件并转换成 css 文件
# guard-coffeescript
监听 coffeescript 文件并转换成 js 文件
# guard-rspec
自动跑 rspec test
# guard-livereload
配合浏览器的辅助工具,做到无需手动刷新页面即可看到 html/css/js 的修改变化,浏览器需要安装配套插件。
# guard-zeus
自动接管 zeus
# guard-puma
puma 是目前流行的 web 服务器,这个扩展可以监听配置变化从而自动重启服务器。