Class: RuboCop::Cop::Team
- Inherits:
-
Object
- Object
- RuboCop::Cop::Team
- Defined in:
- lib/rubocop/cop/team.rb
Overview
FIXME
Defined Under Namespace
Classes: Investigation
Constant Summary collapse
- INCOMPATIBLE_COPS =
If these cops try to autocorrect the same file at the same time, bad things are liable to happen
{ Style::SymbolProc => [Style::SpaceBeforeBlockBraces], Style::SpaceBeforeBlockBraces => [Style::SymbolProc], Style::LineEndConcatenation => [Style::UnneededInterpolation], Style::UnneededInterpolation => [Style::LineEndConcatenation] }.freeze
- DEFAULT_OPTIONS =
{ auto_correct: false, debug: false }.freeze
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#updated_source_file ⇒ Object
(also: #updated_source_file?)
readonly
Returns the value of attribute updated_source_file.
-
#warnings ⇒ Object
readonly
Returns the value of attribute warnings.
Instance Method Summary collapse
- #autocorrect(buffer, cops) ⇒ Object
- #autocorrect? ⇒ Boolean
- #cops ⇒ Object
- #debug? ⇒ Boolean
- #forces ⇒ Object
- #forces_for(cops) ⇒ Object
-
#initialize(cop_classes, config, options = nil) ⇒ Team
constructor
A new instance of Team.
- #inspect_file(processed_source) ⇒ Object
Constructor Details
#initialize(cop_classes, config, options = nil) ⇒ Team
Returns a new instance of Team.
27 28 29 30 31 32 33 34 35 |
# File 'lib/rubocop/cop/team.rb', line 27 def initialize(cop_classes, config, = nil) @cop_classes = cop_classes @config = config @options = || DEFAULT_OPTIONS @errors = [] @warnings = [] validate_config end |
Instance Attribute Details
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
23 24 25 |
# File 'lib/rubocop/cop/team.rb', line 23 def errors @errors end |
#updated_source_file ⇒ Object (readonly) Also known as: updated_source_file?
Returns the value of attribute updated_source_file.
23 24 25 |
# File 'lib/rubocop/cop/team.rb', line 23 def updated_source_file @updated_source_file end |
#warnings ⇒ Object (readonly)
Returns the value of attribute warnings.
23 24 25 |
# File 'lib/rubocop/cop/team.rb', line 23 def warnings @warnings end |
Instance Method Details
#autocorrect(buffer, cops) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/rubocop/cop/team.rb', line 73 def autocorrect(buffer, cops) @updated_source_file = false return unless autocorrect? new_source = autocorrect_all_cops(buffer, cops) return if new_source == buffer.source if @options[:stdin] # holds source read in from stdin, when --stdin option is used @options[:stdin] = new_source else filename = buffer.name File.open(filename, 'w') { |f| f.write(new_source) } end @updated_source_file = true end |
#autocorrect? ⇒ Boolean
37 38 39 |
# File 'lib/rubocop/cop/team.rb', line 37 def autocorrect? @options[:auto_correct] end |
#cops ⇒ Object
54 55 56 57 58 59 |
# File 'lib/rubocop/cop/team.rb', line 54 def cops = @options.fetch(:only, []) @cops ||= @cop_classes.enabled(@config, ).map do |cop_class| cop_class.new(@config, @options) end end |
#debug? ⇒ Boolean
41 42 43 |
# File 'lib/rubocop/cop/team.rb', line 41 def debug? @options[:debug] end |
#forces ⇒ Object
61 62 63 |
# File 'lib/rubocop/cop/team.rb', line 61 def forces @forces ||= forces_for(cops) end |
#forces_for(cops) ⇒ Object
65 66 67 68 69 70 71 |
# File 'lib/rubocop/cop/team.rb', line 65 def forces_for(cops) Force.all.each_with_object([]) do |force_class, forces| joining_cops = cops.select { |cop| cop.join_force?(force_class) } next if joining_cops.empty? forces << force_class.new(joining_cops) end end |
#inspect_file(processed_source) ⇒ Object
45 46 47 48 49 50 51 52 |
# File 'lib/rubocop/cop/team.rb', line 45 def inspect_file(processed_source) # If we got any syntax errors, return only the syntax offenses. unless processed_source.valid_syntax? return Lint::Syntax.offenses_from_processed_source(processed_source) end offenses(processed_source) end |