Class: RuboCop::Cop::Style::Semicolon
Overview
Checks for multiple expressions placed on the same line. It also checks for lines terminated with a semicolon.
This cop has ‘AllowAsExpressionSeparator` configuration option. It allows `;` to separate several expressions on the same line.
Constant Summary collapse
- MSG =
'Do not use semicolons to terminate expressions.'
Constants inherited from Base
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
Instance Method Summary collapse
Methods included from AutoCorrector
Methods inherited from Base
#active_support_extensions_enabled?, #add_global_offense, #add_offense, #always_autocorrect?, 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?, #message, #offenses, #on_investigation_end, #on_other_file, #parse, #parser_engine, #ready, #relevant_file?, requires_gem, #string_literals_frozen_by_default?, support_autocorrect?, support_multiple_source?, #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
Class Method Details
.autocorrect_incompatible_with ⇒ Object
35 36 37 |
# File 'lib/rubocop/cop/style/semicolon.rb', line 35 def self.autocorrect_incompatible_with [Style::SingleLineMethods] end |
Instance Method Details
#on_begin(node) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/rubocop/cop/style/semicolon.rb', line 45 def on_begin(node) return if cop_config['AllowAsExpressionSeparator'] return unless node.source.include?(';') exprs = node.children return if exprs.size < 2 expressions_per_line(exprs).each do |line, expr_on_line| # Every line with more than one expression on it is a # potential offense next unless expr_on_line.size > 1 find_semicolon_positions(line) { |pos| register_semicolon(line, pos, true) } end end |
#on_new_investigation ⇒ Object
39 40 41 42 43 |
# File 'lib/rubocop/cop/style/semicolon.rb', line 39 def on_new_investigation return if processed_source.blank? || !processed_source.raw_source.include?(';') check_for_line_terminator_or_opener end |