Class: Rubocop::Cop::Style::AlignParameters
- Defined in:
- lib/rubocop/cop/style/align_parameters.rb
Overview
Here we check if the parameters on a multi-line method call are aligned.
Constant Summary collapse
- MSG =
'Align the parameters of a method call if they span ' + 'more than one line.'
Instance Attribute Summary
Attributes inherited from Cop
#autocorrect, #corrections, #debug, #disabled_lines, #offences
Instance Method Summary collapse
Methods inherited from Cop
#add_offence, all, cop_name, cop_type, #do_autocorrect, #ignore_node, inherited, #initialize, lint?, #name, rails?, style?
Constructor Details
This class inherits a constructor from Rubocop::Cop::Cop
Instance Method Details
#autocorrect_action(node, column_delta) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/rubocop/cop/style/align_parameters.rb', line 31 def autocorrect_action(node, column_delta) @corrections << lambda do |corrector| expr = node.loc.expression if column_delta > 0 corrector.replace(expr, ' ' * column_delta + expr.source) else range = Parser::Source::Range.new(expr.source_buffer, expr.begin_pos + column_delta, expr.end_pos) corrector.replace(range, expr.source) end end end |
#on_send(node) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/rubocop/cop/style/align_parameters.rb', line 12 def on_send(node) _receiver, method, *args = *node return if method == :[]= return if args.size <= 1 first_arg_column = args.first.loc.expression.column args.each_cons(2) do |prev, current| current_pos = current.loc.expression if current_pos.line > prev.loc.expression.line && current_pos.column != first_arg_column add_offence(:convention, current_pos, MSG) do_autocorrect(current, first_arg_column - current_pos.column) end end end |