mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-23 14:29:31 +00:00
55 lines
1.6 KiB
Ruby
55 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
begin
|
|
require "rubocop"
|
|
require "rubocop/rake_task"
|
|
rescue LoadError # rubocop:disable Lint/HandleExceptions
|
|
else
|
|
require "rbconfig"
|
|
# https://github.com/bundler/bundler/blob/1b3eb2465a/lib/bundler/constants.rb#L2
|
|
windows_platforms = /(msdos|mswin|djgpp|mingw)/
|
|
if RbConfig::CONFIG["host_os"] =~ windows_platforms
|
|
desc "No-op rubocop on Windows-- unsupported platform"
|
|
task :rubocop do
|
|
puts "Skipping rubocop on Windows"
|
|
end
|
|
elsif defined?(::Rubinius)
|
|
desc "No-op rubocop to avoid rbx segfault"
|
|
task :rubocop do
|
|
puts "Skipping rubocop on rbx due to segfault"
|
|
puts "https://github.com/rubinius/rubinius/issues/3499"
|
|
end
|
|
else
|
|
Rake::Task[:rubocop].clear if Rake::Task.task_defined?(:rubocop)
|
|
patterns = [
|
|
"Gemfile",
|
|
"Rakefile",
|
|
"lib/**/*.{rb,rake}",
|
|
"config/**/*.rb",
|
|
"app/**/*.rb",
|
|
"test/**/*.rb"
|
|
]
|
|
desc "Execute rubocop"
|
|
RuboCop::RakeTask.new(:rubocop) do |task|
|
|
task.options = ["--rails", "--display-cop-names", "--display-style-guide"]
|
|
task.formatters = ["progress"]
|
|
task.patterns = patterns
|
|
task.fail_on_error = true
|
|
end
|
|
|
|
namespace :rubocop do
|
|
desc "Auto-gen rubocop config"
|
|
task :auto_gen_config do
|
|
options = ["--auto-gen-config"].concat patterns
|
|
require "benchmark"
|
|
result = 0
|
|
cli = RuboCop::CLI.new
|
|
time = Benchmark.realtime do
|
|
result = cli.run(options)
|
|
end
|
|
puts "Finished in #{time} seconds" if cli.options[:debug]
|
|
abort("RuboCop failed!") if result.nonzero?
|
|
end
|
|
end
|
|
end
|
|
end
|