Class: RuboCop::Cop::Legion::HelperMigration::RequireDefinedGuard
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Legion::HelperMigration::RequireDefinedGuard
- Extended by:
- AutoCorrector
- Defined in:
- lib/rubocop/cop/legion/helper_migration/require_defined_guard.rb
Overview
Detects require or require_relative statements guarded by
if defined?(Legion::...). These guards are unnecessary because
the framework boot sequence guarantees dependencies are loaded
before extensions. The guard can be safely removed.
Constant Summary collapse
- MSG =
'Remove `if defined?(...)` guard from `%<method>s`. ' \ 'The framework boot sequence ensures dependencies are loaded.'
Instance Method Summary collapse
-
#on_if(node) ⇒ Object
Match: require/require_relative 'str' if defined?(Legion::Something) AST for
require 'foo' if defined?(Bar)is: (if (defined? ...) (send nil? :require (str "...")) nil).
Instance Method Details
#on_if(node) ⇒ Object
Match: require/require_relative 'str' if defined?(Legion::Something)
AST for require 'foo' if defined?(Bar) is:
(if (defined? ...) (send nil? :require (str "...")) nil)
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/rubocop/cop/legion/helper_migration/require_defined_guard.rb', line 29 def on_if(node) return unless modifier_if?(node) return unless defined_legion_guard?(node.condition) return unless require_call?(node.if_branch) method_name = node.if_branch.method_name add_offense(node, message: format(MSG, method: method_name)) do |corrector| corrector.replace(node, node.if_branch.source) end end |