Class: Shirobai::Cop::Rails::ApplicationController

Inherits:
RuboCop::Cop::Base
  • Object
show all
Extended by:
RuboCop::Cop::AutoCorrector
Includes:
BundleEligible
Defined in:
lib/shirobai/cop/rails/application_controller.rb

Overview

Drop-in Rust reimplementation of Rails/ApplicationController (rubocop-rails 2.35.5). See ApplicationRecord for the shared EnforceSuperclass semantics and offense/autocorrect ranges.

Unlike Record / Mailer / Job this cop has NO TargetRailsVersion gate — stock does not declare one, so it runs on every Rails version.

Constant Summary collapse

MSG =
"Controllers should subclass `ApplicationController`."
SUPERCLASS =
"ApplicationController"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.badgeObject



20
# File 'lib/shirobai/cop/rails/application_controller.rb', line 20

def self.badge = RuboCop::Cop::Badge.parse(cop_name)

.bundle_args(_config) ⇒ Object



22
23
24
# File 'lib/shirobai/cop/rails/application_controller.rb', line 22

def self.bundle_args(_config)
  []
end

.cop_nameObject



19
# File 'lib/shirobai/cop/rails/application_controller.rb', line 19

def self.cop_name = "Rails/ApplicationController"

Instance Method Details

#on_new_investigationObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/shirobai/cop/rails/application_controller.rb', line 26

def on_new_investigation
  buffer = processed_source.buffer
  source = bundle_eligible? ? processed_source.raw_source : buffer.source
  off = SourceOffsets.for(source)
  resolved_offenses.each do |start_offset, end_offset|
    range = Parser::Source::Range.new(buffer, off[start_offset], off[end_offset])
    add_offense(range, message: MSG) do |corrector|
      corrector.replace(range, self.class::SUPERCLASS)
    end
  end
end