require 'bundler/gem_tasks'
require 'rubocop/rake_task'
require 'rspec/core/rake_task'

desc 'Run RuboCop'
RuboCop::RakeTask.new(:rubocop) do |task|
  task.options = ['-D']
  # Abort rake on failure
  task.fail_on_error = true
end

RSpec::Core::RakeTask.new(:spec)

task :cucumber do
  if ENV['TRAVIS_SECURE_ENV_VARS']
    cmd = 'cucumber'
    puts "TravisCI environment detected, running: #{cmd}"
  else
    cmd = 'env $(cat .env | xargs) cucumber' # adds .env entries as `KEY1=VAL2 KEY2=VAL2 cucumber`
    puts "Non-CI environment detected, running: #{cmd}"
  end
  sh cmd
end

desc 'Lint, then run all tests before pushing up your commit! Also used by Jenkins'
task all: [:rubocop, :spec, :cucumber]

task default: :all
