Module: RuboCop::Cop::ConfigurableEnforcedStyle
- Included in:
- ConfigurableNaming, EndKeywordAlignment, Rails::ActionFilter, Rails::Date, Rails::TimeZone, Style::AccessModifierIndentation, Style::Alias, Style::AndOr, Style::BarePercentLiterals, Style::BlockDelimiters, Style::BracesAroundHashParameters, Style::CaseIndentation, Style::ClassAndModuleChildren, Style::ClassCheck, Style::CommandLiteral, Style::DotPosition, Style::EmptyElse, Style::EmptyLinesAroundBody, Style::Encoding, Style::FirstParameterIndentation, Style::For, Style::FormatString, Style::FrozenStringLiteralComment, Style::GuardClause, Style::HashSyntax, Style::IndentArray, Style::IndentHash, Style::IndentationConsistency, Style::LambdaCall, Style::MethodDefParentheses, Style::MissingElse, Style::MultilineAssignmentLayout, Style::MultilineMethodCallIndentation, Style::MultilineOperationIndentation, Style::Next, Style::PercentQLiterals, Style::RaiseArgs, Style::RegexpLiteral, Style::SignalException, Style::SpaceAroundBlockParameters, Style::SpaceAroundEqualsInParameterDefault, Style::SpaceBeforeBlockBraces, Style::SpaceInsideBlockBraces, Style::SpaceInsideHashLiteralBraces, Style::SpaceInsideStringInterpolation, Style::SpecialGlobalVars, Style::StabbyLambdaParentheses, Style::StringLiterals, Style::StringLiteralsInInterpolation, Style::SymbolArray, Style::TrailingBlankLines, TrailingComma
- Defined in:
- lib/rubocop/cop/mixin/configurable_enforced_style.rb
Overview
Handles ‘EnforcedStyle` configuration parameters.
Instance Method Summary collapse
- #alternative_style ⇒ Object
- #ambiguous_style_detected(*possibilities) ⇒ Object
- #correct_style_detected ⇒ Object
- #detected_style ⇒ Object
- #detected_style=(style) ⇒ Object
- #no_acceptable_style! ⇒ Object (also: #conflicting_styles_detected, #unrecognized_style_detected)
- #no_acceptable_style? ⇒ Boolean
- #opposite_style_detected ⇒ Object
- #parameter_name ⇒ Object
- #style ⇒ Object
- #style_detected(detected) ⇒ Object
- #supported_styles ⇒ Object
- #unexpected_style_detected(unexpected) ⇒ Object
Instance Method Details
#alternative_style ⇒ Object
89 90 91 92 93 94 95 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 89 def alternative_style if supported_styles.size != 2 raise 'alternative_style can only be used when there are exactly ' \ '2 SupportedStyles' end (supported_styles - [style]).first end |
#ambiguous_style_detected(*possibilities) ⇒ Object
20 21 22 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 20 def ambiguous_style_detected(*possibilities) style_detected(possibilities) end |
#correct_style_detected ⇒ Object
12 13 14 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 12 def correct_style_detected style_detected(style) end |
#detected_style ⇒ Object
56 57 58 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 56 def detected_style Formatter::DisabledConfigFormatter.detected_styles[cop_name] ||= nil end |
#detected_style=(style) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 60 def detected_style=(style) Formatter::DisabledConfigFormatter.detected_styles[cop_name] = style if style.nil? no_acceptable_style! elsif style.is_a?(Array) if style.empty? no_acceptable_style! else config_to_allow_offenses[parameter_name] = style[0] end else config_to_allow_offenses[parameter_name] = style end end |
#no_acceptable_style! ⇒ Object Also known as: conflicting_styles_detected, unrecognized_style_detected
51 52 53 54 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 51 def no_acceptable_style! self.config_to_allow_offenses = { 'Enabled' => false } Formatter::DisabledConfigFormatter.detected_styles[cop_name] = [] end |
#no_acceptable_style? ⇒ Boolean
47 48 49 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 47 def no_acceptable_style? config_to_allow_offenses['Enabled'] == false end |
#opposite_style_detected ⇒ Object
8 9 10 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 8 def opposite_style_detected style_detected(alternative_style) end |
#parameter_name ⇒ Object
101 102 103 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 101 def parameter_name 'EnforcedStyle' end |
#style ⇒ Object
79 80 81 82 83 84 85 86 87 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 79 def style @enforced_style ||= begin s = cop_config[parameter_name].to_sym unless supported_styles.include?(s) raise "Unknown style #{s} selected!" end s end end |
#style_detected(detected) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 24 def style_detected(detected) # `detected` can be a single style, or an Array of possible styles # (if there is more than one which matches the observed code) return if no_acceptable_style? if detected.is_a?(Array) detected.map!(&:to_s) else detected = detected.to_s end if !detected_style # we haven't observed any specific style yet self.detected_style = detected elsif detected_style.is_a?(Array) self.detected_style &= [*detected] elsif detected.is_a?(Array) no_acceptable_style! unless detected.include?(detected_style) else no_acceptable_style! unless detected_style == detected end end |
#supported_styles ⇒ Object
97 98 99 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 97 def supported_styles @supported_styles ||= cop_config['SupportedStyles'].map(&:to_sym) end |
#unexpected_style_detected(unexpected) ⇒ Object
16 17 18 |
# File 'lib/rubocop/cop/mixin/configurable_enforced_style.rb', line 16 def unexpected_style_detected(unexpected) style_detected(unexpected) end |