class RuboCop::Cop::Layout::SpaceBeforeFirstArg
something ‘hello’
something y, z
something x
# good
something’hello’
something y, z
something x
# bad
@example
config parameter is true.
something on a preceding or following line, if the AllowForAlignment
Alternatively, extra spaces can be added to align the argument with
first argument for method calls without parentheses.
Checks that exactly one space is used between a method name and the
def self.autocorrect_incompatible_with
def self.autocorrect_incompatible_with [Style::MethodCallWithArgsParentheses] end
def expect_params_after_method_name?(node)
def expect_params_after_method_name?(node) return true if no_space_between_method_name_and_first_argument?(node) first_arg = node.first_argument same_line?(first_arg, node) && !(allow_for_alignment? && aligned_with_something?(first_arg.source_range)) end
def no_space_between_method_name_and_first_argument?(node)
def no_space_between_method_name_and_first_argument?(node) end_pos_of_method_name = node.loc.selector.end_pos begin_pos_of_argument = node.first_argument.source_range.begin_pos end_pos_of_method_name == begin_pos_of_argument end
def on_send(node)
def on_send(node) return unless regular_method_call_with_arguments?(node) return if node.parenthesized? first_arg = node.first_argument.source_range first_arg_with_space = range_with_surrounding_space(first_arg, side: :left) space = range_between(first_arg_with_space.begin_pos, first_arg.begin_pos) return if space.length == 1 return unless expect_params_after_method_name?(node) add_offense(space) { |corrector| corrector.replace(space, ' ') } end
def regular_method_call_with_arguments?(node)
def regular_method_call_with_arguments?(node) node.arguments? && !node.operator_method? && !node.setter_method? end