chatwoot/chatwoot

View on GitHub
rubocop/custom_cop_location.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'rubocop'

# enforce rubocop custom rules to only be added in the `rubocop` directory
class CustomCopLocation < RuboCop::Cop::Base
  MSG = 'Custom cops should be added in the `rubocop` directory.'.freeze

  def on_send(node)
    return unless node.source.include?('require \'rubocop\'')

    # convert the full path to relative
    full_path = processed_source.file_path
    relative_path = Pathname.new(full_path).relative_path_from(Pathname.new(Dir.pwd)).to_s

    return if relative_path.start_with?('rubocop')

    add_offense(node, message: MSG)
  end
end