# frozen_string_literal: true

require "bundler/gem_tasks"

require "rspec/core/rake_task"
RSpec::Core::RakeTask.new(:spec)

require "rubocop/rake_task"
RuboCop::RakeTask.new(:rubocop) do |task|
  task.options = %w[--parallel]
end

desc "update the rubocop todo config"
RuboCop::RakeTask.new("rubocop:config") do |task|
  task.options = %w[--auto-gen-config]
end

desc "Generate test protobuf stubs"
task :gen_test_proto do
  system "grpc_tools_ruby_protoc --ruby_out=. --grpc_out=. spec/support/grpc_service/test.proto"
  Rufo::Command.run(["spec/support/grpc_service/test_pb.rb", "spec/support/grpc_service/test_services_pb.rb"])
end

task :fix => ["rubocop:autocorrect"]

task :verify => %w[spec rubocop]

task :default => %w[verify build]

desc "Start an IRB console with gem pre-loaded"
task :console do
  $LOAD_PATH.unshift(File.expand_path("lib", __dir__))
  require "irb"
  require "gitlab-labkit"
  ARGV.clear
  IRB.start
end
