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 |