Class: RuboCop::Cop::MessageAnnotator

Inherits:
Object
  • Object
show all
Defined in:
lib/rubocop/cop/message_annotator.rb

Overview

Message Annotator class annotates a basic offense message based on params passed into initializer.

#=> 'Cop/CopName: message (http://example.org/styleguide)'

Examples:

RuboCop::Cop::MessageAnnotator.new(
  config, cop_name, cop_config, @options
).annotate('message')

See Also:

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config, cop_name, cop_config, options) ⇒ MessageAnnotator

Returns a new instance of MessageAnnotator.

Parameters:

  • config (RuboCop::Config) —

    Check configs for all cops @note Message Annotator specifically checks the following config options for_all_cops :StyleGuideBaseURL [String] URL for styleguide :DisplayStyleGuide [Boolean] Include styleguide and reference URLs :ExtraDetails [Boolean] Include cop details :DisplayCopNames [Boolean] Include cop name

  • cop_name (String) —

    for specific cop name

  • cop_config (Hash) —

    configs for specific cop, from config#for_cop

  • options (Hash, nil) —

    optional

Options Hash (cop_config):

  • :StyleGuide (String) —

    Extension of base styleguide URL

  • :References (String) —

    Full reference URLs

  • :Details (String)

Options Hash (options):

  • :display_style_guide (Boolean) —

    Include style guide and reference URLs

  • :extra_details (Boolean) —

    Include cop specific details

  • :debug (Boolean) —

    Include debug output

  • :display_cop_names (Boolean) —

    Include cop name



47
48
49
50
51
52
# File 'lib/rubocop/cop/message_annotator.rb', line 47

def initialize(config, cop_name, cop_config, options)
  @config = config
  @cop_name = cop_name
  @cop_config = cop_config || {}
  @options = options
end

Class Attribute Details

.style_guide_urls ⇒ Object (readonly)

Returns the value of attribute style_guide_urls.



21
22
23
# File 'lib/rubocop/cop/message_annotator.rb', line 21

def style_guide_urls
  @style_guide_urls
end

Instance Attribute Details

#config ⇒ Object (readonly)

Returns the value of attribute config.



16
17
18
# File 'lib/rubocop/cop/message_annotator.rb', line 16

def config
  @config
end

#cop_config ⇒ Object (readonly)

Returns the value of attribute cop_config.



16
17
18
# File 'lib/rubocop/cop/message_annotator.rb', line 16

def cop_config
  @cop_config
end

#cop_name ⇒ Object (readonly)

Returns the value of attribute cop_name.



16
17
18
# File 'lib/rubocop/cop/message_annotator.rb', line 16

def cop_name
  @cop_name
end

#options ⇒ Object (readonly)

Returns the value of attribute options.



16
17
18
# File 'lib/rubocop/cop/message_annotator.rb', line 16

def options
  @options
end

Instance Method Details

#annotate(message) ⇒ String

Returns the annotated message, based on params passed into initializer

Returns:

  • (String) —

    annotated message



58
59
60
61
62
63
64
65
66
# File 'lib/rubocop/cop/message_annotator.rb', line 58

def annotate(message)
  message = "#{cop_name}: #{message}" if display_cop_names?
  message += " #{details}" if extra_details? && details
  if display_style_guide?
    links = urls.join(', ')
    message = "#{message} (#{links})"
  end
  message
end

#urls ⇒ Object



68
69
70
# File 'lib/rubocop/cop/message_annotator.rb', line 68

def urls
  [style_guide_url, *reference_urls].compact
end