diff --git a/Gemfile b/Gemfile index c8d3821f..d104cbb6 100644 --- a/Gemfile +++ b/Gemfile @@ -109,6 +109,9 @@ group :development, :test do gem "database_cleaner" gem "launchy" gem 'factory_girl_rails' + + gem 'guard-rspec' + gem 'guard-cucumber' end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index 83fd94db..00ece601 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -186,6 +186,14 @@ GEM multi_xml rack rack-mount + guard (1.3.2) + listen (>= 0.4.2) + thor (>= 0.14.6) + guard-cucumber (1.2.0) + cucumber (>= 1.2.0) + guard (>= 1.1.0) + guard-rspec (1.2.1) + guard (>= 1.1) haml (3.1.6) haml-rails (0.3.4) actionpack (~> 3.0) @@ -219,6 +227,7 @@ GEM libv8 (3.3.10.4) libwebsocket (0.1.3) addressable + listen (0.5.0) mail (2.4.4) i18n (>= 0.4.0) mime-types (~> 1.16) @@ -403,6 +412,8 @@ DEPENDENCIES grack! grape (~> 0.2.1) grit! + guard-cucumber + guard-rspec haml-rails headless httparty diff --git a/Guardfile b/Guardfile new file mode 100644 index 00000000..ed38f548 --- /dev/null +++ b/Guardfile @@ -0,0 +1,30 @@ +# 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{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" } + watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_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('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" } + + # Turnip features and steps + watch(%r{^spec/acceptance/(.+)\.feature$}) + watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' } +end + + +guard 'cucumber' do + watch(%r{^features/.+\.feature$}) + watch(%r{^features/support/.+$}) { 'features' } + watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' } +end