1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#!/usr/bin/env ruby
# frozen_string_literal: true
$LOAD_PATH.unshift(File.join(__dir__, '..', 'lib'))
require 'yard'
require 'rubocop-rspec'
require 'rubocop/rspec/config_formatter'
require 'rubocop/rspec/description_extractor'
glob = File.join('lib', 'rubocop', 'cop', 'rspec',
'{,capybara,factory_bot,rails}', '*.rb')
# Due to YARD's sensitivity to file require order (as of 0.9.25),
# we have to prepend the list with our base cop, RuboCop::Cop::RSpec::Base.
# Otherwise, cop's parent class for cops loaded before our base cop class
# are detected as RuboCop::Cop::Base, and that complicates the detection
# of their relation with RuboCop RSpec.
rspec_cop_path = File.join('lib', 'rubocop', 'cop', 'rspec', 'base.rb')
YARD::Tags::Library.define_tag('Cop Safety Information', :safety)
YARD.parse(Dir[glob].prepend(rspec_cop_path), [])
descriptions =
RuboCop::RSpec::DescriptionExtractor.new(YARD::Registry.all(:class)).to_h
current_config = if Psych::VERSION >= '4.0.0' # RUBY_VERSION >= '3.1.0'
YAML.unsafe_load_file('config/default.yml')
else
YAML.load_file('config/default.yml')
end
File.write(
'config/default.yml',
RuboCop::RSpec::ConfigFormatter.new(current_config, descriptions).dump
)
|