require 'bundler/gem_tasks' require 'rake/testtask' require 'jslint/tasks' require 'haml_lint/rake_task' require 'rubocop/rake_task' JSLint.config_path = '.jslint.yml' HamlLint::RakeTask.new RuboCop::RakeTask.new namespace :test do # Separate the unit and integration tests when running the entire suite. Rake::TestTask.new(:unit) do |t| t.libs.push('lib') t.test_files = FileList[File.expand_path('../test/unit/**/*_test.rb', __FILE__)] t.verbose = true end namespace :integration do Rake::TestTask.new(cli: 'test:unit') do |t| t.libs.push('lib') t.test_files = FileList[File.expand_path('../test/integration/cli/**/*_test.rb', __FILE__)] t.verbose = true end Rake::TestTask.new(web: :cli) do |t| t.libs.push('lib') t.test_files = FileList[File.expand_path('../test/integration/web/**/*_test.rb', __FILE__)] t.verbose = true end end desc 'Run all integration tests' task integration: 'integration:web' end # Keep a default test task for manually running any test Rake::TestTask.new do |t| t.libs.push('lib') t.test_files = FileList[File.expand_path('../test/**/*_test.rb', __FILE__)] t.verbose = true end desc 'Start the web interface for development' task server: 'server:start' namespace :server do task :start do sh('shotgun config.ru') end desc 'Copy the current configuration for use with the development web interface' task :copy_config do FileUtils.mkdir_p('./tmp/web') FileUtils.copy( File.expand_path('.gitdocs/config.db', ENV['HOME']), './tmp/web/config.db' ) end end desc 'Run the daemon in debugging mode' task :debug do exec('bin/gitdocs start --foreground --verbose --port 9999') end if ENV['TRAVIS'] task default: 'test:integration:cli' else task default: 'test:integration' end