Class: RuboCop::Cop::Layout::SpaceInsideBlockBraces
- Includes:
- ConfigurableEnforcedStyle, RangeHelp, SurroundingSpace
- Defined in:
- lib/rubocop/cop/layout/space_inside_block_braces.rb
Overview
Checks that block braces have or don’t have surrounding space inside them on configuration. For blocks taking parameters, it checks that the left brace has or doesn’t have trailing space depending on configuration.
Constant Summary
Constants included from SurroundingSpace
SurroundingSpace::NO_SPACE_COMMAND, SurroundingSpace::SINGLE_SPACE_REGEXP, SurroundingSpace::SPACE_COMMAND
Constants included from Util
Instance Attribute Summary
Attributes inherited from Cop
#config, #corrections, #offenses, #processed_source
Instance Method Summary collapse
Methods included from ConfigurableEnforcedStyle
#alternative_style, #alternative_styles, #ambiguous_style_detected, #correct_style_detected, #detected_style, #detected_style=, #no_acceptable_style!, #no_acceptable_style?, #opposite_style_detected, #style, #style_detected, #style_parameter_name, #supported_styles, #unexpected_style_detected
Methods inherited from Cop
#add_offense, all, autocorrect_incompatible_with, badge, #config_to_allow_offenses, #config_to_allow_offenses=, #cop_config, #cop_name, cop_name, #correct, department, #disable_uncorrectable, #duplicate_location?, #excluded_file?, #find_location, #highlights, inherited, #initialize, #join_force?, lint?, match?, #message, #messages, #parse, qualified_cop_name, #reason_to_not_correct, #relevant_file?, #target_rails_version, #target_ruby_version
Methods included from AST::Sexp
Methods included from NodePattern::Macros
#def_node_matcher, #def_node_search, #node_search, #node_search_all, #node_search_body, #node_search_first
Methods included from AutocorrectLogic
#autocorrect?, #autocorrect_enabled?, #autocorrect_requested?, #correctable?, #disable_offense, #disable_uncorrectable?, #support_autocorrect?
Methods included from IgnoredNode
#ignore_node, #ignored_node?, #part_of_ignored_node?
Methods included from Util
begins_its_line?, comment_line?, double_quotes_required?, escape_string, first_part_of_call_chain, interpret_string_escapes, line_range, needs_escaping?, on_node, parentheses?, same_line?, to_string_literal, to_supported_styles, tokens, trim_string_interporation_escape_character
Methods included from PathUtil
absolute?, chdir, hidden_dir?, hidden_file_in_not_hidden_dir?, match_path?, pwd, relative_path, reset_pwd, smart_path
Constructor Details
This class inherits a constructor from RuboCop::Cop::Cop
Instance Method Details
#autocorrect(range) ⇒ Object
100 101 102 103 104 105 106 107 108 109 |
# File 'lib/rubocop/cop/layout/space_inside_block_braces.rb', line 100 def autocorrect(range) lambda do |corrector| case range.source when /\s/ then corrector.remove(range) when '{}' then corrector.replace(range, '{ }') when '{|' then corrector.replace(range, '{ |') else corrector.insert_before(range, ' ') end end end |
#on_block(node) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/rubocop/cop/layout/space_inside_block_braces.rb', line 84 def on_block(node) return if node.keywords? # Do not register an offense for multi-line empty braces. That means # preventing auto-correction to single-line empty braces. It will # conflict with auto-correction by `Layout/SpaceInsideBlockBraces` cop # if auto-corrected to a single-line empty braces. # See: https://github.com/rubocop-hq/rubocop/issues/7363 return if node.body.nil? && node.multiline? left_brace = node.loc.begin right_brace = node.loc.end check_inside(node, left_brace, right_brace) end |