# frozen_string_literal: true

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

locallib = File.join(File.dirname(__FILE__), "lib")
$LOAD_PATH.unshift locallib

Dir["tasks/**/*.rake"].each { |t| load t }

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

task default: %i[
  spec
  rubocop
]

desc "Generate a new cop with a template"
task :new_cop, [:cop] do |_task, args|
  require "rubocop"

  cop_name = args.fetch(:cop) do
    warn "usage: bundle exec rake new_cop[Department/Name]"
    exit!
  end

  github_user = `git config github.user`.chop
  github_user = "your_id" if github_user.empty?

  generator = RuboCop::Cop::Generator.new(cop_name, github_user)

  generator.write_source
  generator.write_spec
  generator.inject_require(root_file_path: "lib/rubocop/cop/packaging_cops.rb")
  generator.inject_config(config_file_path: "config/default.yml")

  puts generator.todo
end
