Open blackchestnut opened 11 months ago
Guardfile
ignore %r{ bin | public | node_modules | tmp | .git }x
guard :bundler do watch('Gemfile') watch('Gemfile.lock') end
group :specs, halt_on_fail: true do guard :rspec, cmd: 'bundle exec rspec --color --format documentation', all_after_pass: false, all_on_start: false, failed_mode: :keep do require "guard/rspec/dsl" dsl = Guard::RSpec::Dsl.new(self)
# Feel free to open issues for suggestions and improvements
# RSpec files
rspec = dsl.rspec
# watch(rspec.spec_helper) { rspec.spec_dir }
# watch(rspec.spec_support) { rspec.spec_dir }
watch(rspec.spec_files)
# Ruby files
ruby = dsl.ruby
dsl.watch_spec_files_for(ruby.lib_files)
# Rails files
rails = dsl.rails(view_extensions: %w(erb haml slim))
dsl.watch_spec_files_for(rails.app_files)
dsl.watch_spec_files_for(rails.views)
watch(rails.controllers) do |m|
[
rspec.spec.call("routing/#{m[1]}_routing"),
rspec.spec.call("controllers/#{m[1]}_controller"),
rspec.spec.call("acceptance/#{m[1]}")
]
end
# Rails config changes
# watch(rails.spec_helper) { rspec.spec_dir }
watch(rails.routes) { "#{rspec.spec_dir}/routing" }
watch(rails.app_controller) { "#{rspec.spec_dir}/controllers" }
# Capybara features specs
watch(rails.view_dirs) { |m| rspec.spec.call("features/#{m[1]}") }
watch(rails.layouts) { |m| rspec.spec.call("features/#{m[1]}") }
# Turnip features and steps
watch(%r{^spec/acceptance/(.+)\.feature$})
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) do |m|
Dir[File.join("**/#{m[1]}.feature")][0] || "spec/acceptance"
end
end
guard :rubocop, all_on_start: false, keep_failed: false do watch(%r{.+.rb$}) watch(%r{(?:.+/)?.rubocop.yml$}) { |m| File.dirname(m[0]) } end end
guard :pow do watch '.powrc' watch '.powenv' watch '.rvmrc' watch 'Gemfile' watch 'Gemfile.lock' watch 'config/application.rb' watch 'config/environment.rb' watch %r{^config/environments/..rb$} watch %r{^config/initializers/..rb$} watch %r{^config/middleware/.*.rb$} end
group :development do
...
gem 'rubocop-rails', require: false gem 'guard' gem 'guard-bundler', require: false gem 'guard-pow', require: false gem 'guard-rspec', require: false gem 'guard-rubocop', require: false gem 'guard-spring', require: false
gem 'better_errors' gem 'binding_of_caller' gem 'listen' gem 'spring' end
group :test do gem 'rspec-collection_matchers' gem 'rspec-its' gem 'rspec-rails' gem 'rspec_junit_formatter' gem 'shoulda' gem 'shoulda-matchers' gem 'timecop' gem 'vcr' gem 'webmock', require: false end
...