class RuboCop::Cop::Layout::SpaceAroundEqualsInParameterDefault

Checks that the equals signs in parameter default assignments have or don't have surrounding space depending on configuration.

Public Instance Methods

on_optarg(node) click to toggle source
# File lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb, line 11
def on_optarg(node)
  index = index_of_first_token(node)
  arg, equals, value = processed_source.tokens[index, 3]
  check_optarg(arg, equals, value)
end

Private Instance Methods

autocorrect(range) click to toggle source
# File lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb, line 58
def autocorrect(range)
  m = range.source.match(/=\s*(\S+)/)
  rest = m ? m.captures[0] : ''
  replacement = style == :space ? ' = ' : '='
  ->(corrector) { corrector.replace(range, replacement + rest) }
end
check_optarg(arg, equals, value) click to toggle source
# File lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb, line 19
def check_optarg(arg, equals, value)
  space_on_both_sides = space_on_both_sides?(arg, equals, value)
  no_surrounding_space = no_surrounding_space?(arg, equals, value)

  if style == :space && space_on_both_sides ||
     style == :no_space && no_surrounding_space
    correct_style_detected
  else
    incorrect_style_detected(arg, value, space_on_both_sides,
                             no_surrounding_space)
  end
end
incorrect_style_detected(arg, value, space_on_both_sides, no_surrounding_space) click to toggle source
# File lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb, line 32
def incorrect_style_detected(arg, value, space_on_both_sides,
                             no_surrounding_space)
  range = range_between(arg.pos.end_pos, value.pos.begin_pos)
  add_offense(range, location: range) do
    if style == :space && no_surrounding_space ||
       style == :no_space && space_on_both_sides
      opposite_style_detected
    else
      unrecognized_style_detected
    end
  end
end
message(_) click to toggle source
# File lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb, line 53
def message(_)
  format('Surrounding space %s in default value assignment.',
         style == :space ? 'missing' : 'detected')
end
no_surrounding_space?(arg, equals, value) click to toggle source
# File lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb, line 49
def no_surrounding_space?(arg, equals, value)
  !space_between?(arg, equals) && !space_between?(equals, value)
end
space_on_both_sides?(arg, equals, value) click to toggle source
# File lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb, line 45
def space_on_both_sides?(arg, equals, value)
  space_between?(arg, equals) && space_between?(equals, value)
end