module RuboCop::Cop::ConfigurableEnforcedStyle
def alternative_style
def alternative_style if supported_styles.size != 2 raise 'alternative_style can only be used when there are exactly ' \ '2 SupportedStyles' end alternative_styles.first end
def alternative_styles
def alternative_styles (supported_styles - [style]) end
def ambiguous_style_detected(*possibilities)
def ambiguous_style_detected(*possibilities) style_detected(possibilities) end
def correct_style_detected
def correct_style_detected style_detected(style) end
def detected_style
def detected_style Formatter::DisabledConfigFormatter.detected_styles[cop_name] ||= nil end
def detected_style=(style)
def detected_style=(style) Formatter::DisabledConfigFormatter.detected_styles[cop_name] = style end
def no_acceptable_style!
def no_acceptable_style! self.config_to_allow_offenses = { 'Enabled' => false } end
def no_acceptable_style?
def no_acceptable_style? config_to_allow_offenses['Enabled'] == false end
def opposite_style_detected
def opposite_style_detected style_detected(alternative_style) end
def style
def style @style ||= begin s = cop_config[style_parameter_name].to_sym unless supported_styles.include?(s) raise "Unknown style #{s} selected!" end s end end
def style_detected(detected)
def style_detected(detected) return if no_acceptable_style? # `detected` can be a single style or an Array of possible styles # (if there is more than one which matches the observed code) detected_as_strings = Array(detected).map(&:to_s) updated_list = if detected_style detected_style & detected_as_strings else # We haven't observed any specific style yet. detected_as_strings end if updated_list.empty? no_acceptable_style! else self.detected_style = updated_list config_to_allow_offenses[style_parameter_name] = updated_list.first end end
def style_parameter_name
def style_parameter_name 'EnforcedStyle' end
def supported_styles
def supported_styles @supported_styles ||= begin supported_styles = Util.to_supported_styles(style_parameter_name) cop_config[supported_styles].map(&:to_sym) end end
def unexpected_style_detected(unexpected)
def unexpected_style_detected(unexpected) style_detected(unexpected) end