Class: RuboCop::Cop::Style::FormatStringToken
- Extended by:
- AutoCorrector
- Includes:
- AllowedMethods, AllowedPattern, ConfigurableEnforcedStyle
- Defined in:
- lib/rubocop/cop/style/format_string_token.rb
Overview
Use a consistent style for tokens within a format string.
By default, all strings are evaluated. In some cases, this may be undesirable, as they could be used as arguments to a method that does not consider them to be tokens, but rather other identifiers or just part of the string.
‘AllowedMethods` or `AllowedPatterns` can be configured with in order to mark specific methods as always allowed, thereby avoiding an offense from the cop. By default, there are no allowed methods.
Additionally, the cop can be made conservative by configuring it with ‘Mode: conservative` (default `aggressive`). In this mode, tokens (regardless of `EnforcedStyle`) are only considered if used in the format string argument to the methods `printf`, `sprintf`, `format` and `%`.
NOTE: Tokens in the ‘unannotated` style (eg. `%s`) are always treated as if configured with `Conservative: true`. This is done in order to prevent false positives, because this format is very similar to encoded URLs or Date/Time formatting strings.
It is allowed to contain unannotated token if the number of them is less than or equals to ‘MaxUnannotatedPlaceholdersAllowed`.
Constant Summary
Constants inherited from Base
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods included from AutoCorrector
Methods included from ConfigurableEnforcedStyle
#alternative_style, #alternative_styles, #ambiguous_style_detected, #correct_style_detected, #detected_style, #detected_style=, #no_acceptable_style!, #no_acceptable_style?, #opposite_style_detected, #style, #style_configured?, #style_detected, #style_parameter_name, #supported_styles, #unexpected_style_detected
Methods inherited from Base
#active_support_extensions_enabled?, #add_global_offense, #add_offense, #always_autocorrect?, autocorrect_incompatible_with, badge, #begin_investigation, #callbacks_needed, callbacks_needed, #config_to_allow_offenses, #config_to_allow_offenses=, #contextual_autocorrect?, #cop_config, cop_name, #cop_name, department, documentation_url, exclude_from_registry, #excluded_file?, #external_dependency_checksum, inherited, #initialize, #inspect, joining_forces, lint?, match?, #offenses, #on_investigation_end, #on_new_investigation, #on_other_file, #parse, #parser_engine, #ready, #relevant_file?, requires_gem, #string_literals_frozen_by_default?, support_autocorrect?, support_multiple_source?, #target_gem_version, #target_rails_version, #target_ruby_version
Methods included from ExcludeLimit
Methods included from AutocorrectLogic
#autocorrect?, #autocorrect_enabled?, #autocorrect_requested?, #autocorrect_with_disable_uncorrectable?, #correctable?, #disable_uncorrectable?, #safe_autocorrect?
Methods included from IgnoredNode
#ignore_node, #ignored_node?, #part_of_ignored_node?
Methods included from Util
Constructor Details
This class inherits a constructor from RuboCop::Cop::Base
Instance Method Details
permalink #on_str(node) ⇒ Object
[View source]
113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/rubocop/cop/style/format_string_token.rb', line 113 def on_str(node) return if format_string_token?(node) || use_allowed_method?(node) detections = collect_detections(node) return if detections.empty? return if allowed_unannotated?(detections) detections.each do |detected_sequence, token_range| check_sequence(detected_sequence, token_range) end end |