class RuboCop::Cop::Layout::SpaceBeforeFirstArg
Checks that exactly one space is used between a method name and the first argument for method calls without parentheses.
Alternatively, extra spaces can be added to align the argument with something on a preceding or following line, if the AllowForAlignment config parameter is true.
@example
# bad something x something y, z something'hello' # good something x something y, z something 'hello'
Constants
- MSG
Public Instance Methods
autocorrect(range)
click to toggle source
# File lib/rubocop/cop/layout/space_before_first_arg.rb, line 45 def autocorrect(range) ->(corrector) { corrector.replace(range, ' ') } end
on_send(node)
click to toggle source
# File lib/rubocop/cop/layout/space_before_first_arg.rb, line 31 def on_send(node) return unless regular_method_call_with_arguments?(node) return unless expect_params_after_method_name?(node) first_arg = node.first_argument.source_range first_arg_with_space = range_with_surrounding_space(range: first_arg, side: :left) space = range_between(first_arg_with_space.begin_pos, first_arg.begin_pos) add_offense(space, location: space) if space.length != 1 end
Also aliased as: on_csend
Private Instance Methods
expect_params_after_method_name?(node)
click to toggle source
# File lib/rubocop/cop/layout/space_before_first_arg.rb, line 55 def expect_params_after_method_name?(node) return false if node.parenthesized? first_arg = node.first_argument same_line?(first_arg, node) && !(allow_for_alignment? && aligned_with_something?(first_arg.source_range)) end
regular_method_call_with_arguments?(node)
click to toggle source
# File lib/rubocop/cop/layout/space_before_first_arg.rb, line 51 def regular_method_call_with_arguments?(node) node.arguments? && !node.operator_method? && !node.setter_method? end