Class: RuboCop::Cop::Rails::ShortI18n
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Rails::ShortI18n
- Extended by:
- AutoCorrector
- Includes:
- ConfigurableEnforcedStyle
- Defined in:
- lib/rubocop/cop/rails/short_i18n.rb
Overview
Enforces that short forms of I18n methods are used:
t instead of translate and l instead of localize.
This cop has two different enforcement modes. When the EnforcedStyle
is conservative (the default) then only I18n.translate and I18n.localize
calls are added as offenses.
When the EnforcedStyle is aggressive then all translate and localize calls
without a receiver are added as offenses.
Constant Summary collapse
- MSG =
'Use `%<good_method>s` instead of `%<bad_method>s`.'- PREFERRED_METHODS =
{ translate: :t, localize: :l }.freeze
- RESTRICT_ON_SEND =
PREFERRED_METHODS.keys.freeze
Instance Method Summary collapse
Instance Method Details
#on_send(node) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/rubocop/cop/rails/short_i18n.rb', line 55 def on_send(node) return if style == :conservative && !node.receiver long_i18n?(node) do |method_name| good_method = PREFERRED_METHODS[method_name] = format(MSG, good_method: good_method, bad_method: method_name) range = node.loc.selector add_offense(range, message: ) do |corrector| corrector.replace(range, PREFERRED_METHODS[method_name]) end end end |