Class: RuboCop::Cop::Rails::SafeNavigation
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Rails::SafeNavigation
- Extended by:
- AutoCorrector
- Includes:
- RangeHelp
- Defined in:
- lib/rubocop/cop/rails/safe_navigation.rb
Overview
This cop converts usages of `try!` to `&.`. It can also be configured to convert `try`. It will convert code to use safe navigation.
Constant Summary collapse
- MSG =
'Use safe navigation (`&.`) instead of `%<try>s`.'- RESTRICT_ON_SEND =
%i[try try!].freeze
Class Method Summary collapse
-
.autocorrect_incompatible_with ⇒ Object
rubocop:enable Style/ClassAndModuleChildren.
Instance Method Summary collapse
Class Method Details
.autocorrect_incompatible_with ⇒ Object
rubocop:enable Style/ClassAndModuleChildren
59 60 61 |
# File 'lib/rubocop/cop/rails/safe_navigation.rb', line 59 def self.autocorrect_incompatible_with [Style::RedundantSelf] end |
Instance Method Details
#on_send(node) ⇒ Object
63 64 65 66 67 68 69 70 71 72 |
# File 'lib/rubocop/cop/rails/safe_navigation.rb', line 63 def on_send(node) try_call(node) do |try_method, dispatch| return if try_method == :try && !cop_config['ConvertTry'] return unless dispatch.sym_type? && dispatch.value.match?(/\w+[=!?]?/) add_offense(node, message: format(MSG, try: try_method)) do |corrector| autocorrect(corrector, node) end end end |