Skip to content

Commit

Permalink
Merge pull request #117 from rubocop/new-cop-command
Browse files Browse the repository at this point in the history
Change step with new_cop command for rubocop-factory_bot
  • Loading branch information
pirj authored May 24, 2024
2 parents 7edebd3 + 424b142 commit fb42154
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
3 changes: 2 additions & 1 deletion Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,14 @@ task default: %i[build_config spec
desc 'Generate a new cop template'
task :new_cop, [:cop] do |_task, args|
require 'rubocop'
require_relative 'lib/rubocop/factory_bot/cop/generator'

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

generator = RuboCop::Cop::Generator.new(cop_name)
generator = RuboCop::FactoryBot::Cop::Generator.new(cop_name)
generator.write_source
generator.write_spec
generator.inject_require(
Expand Down
25 changes: 25 additions & 0 deletions lib/rubocop/factory_bot/cop/generator.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# frozen_string_literal: true

module RuboCop
module FactoryBot
module Cop
# Source and spec generator for new cops
#
# This generator will take a cop name and generate a source file
# and spec file when given a valid qualified cop name.
# @api private
class Generator < RuboCop::Cop::Generator
def todo
<<~TODO
Do 4 steps:
1. Modify the description of #{badge} in config/default.yml
2. Implement your new cop in the generated file!
3. Add an entry about new cop to CHANGELOG.md
4. Commit your new cop with a message such as
e.g. "Add new `#{badge}` cop"
TODO
end
end
end
end
end

0 comments on commit fb42154

Please sign in to comment.