require 'bundler/gem_tasks' begin require 'cucumber' require 'cucumber/rake/task' Cucumber::Rake::Task.new(:features) do |t| t.cucumber_opts = '--format pretty' end Cucumber::Rake::Task.new('features:wip') do |t| t.cucumber_opts = '--format pretty --tags @wip' end rescue LoadError desc 'Cucumber rake task not available' task :features do abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin' end end namespace :deps do desc 'Installs non-ruby dependencies like gulp and nodejs packages' task :install do Dir.chdir('app') do sh 'npm install' end end desc 'Updates npm packages' task :update do Dir.chdir('app') do sh 'npm update' end end desc 'Removes npm packages from filesystem' task :clean do Dir.chdir('app') do sh 'rm -rf node_modules' end end end namespace :assets do desc 'Build js and css' task :build do Dir.chdir('app') do sh './node_modules/gulp/bin/gulp.js build' end end desc 'Watch the assets files and rebuild when one of them changes' task :watch => :build do Dir.chdir('app') do sh './node_modules/gulp/bin/gulp.js watch' end end desc 'Clean builded assets' task :clean do Dir.chdir('app') do sh './node_modules/gulp/bin/gulp.js clean' end end end task :build => %w(deps:install assets:build) namespace :git do desc 'Executes git clean' task :clean do sh 'git clean -dfx' end end