Class: RuboCop::Cop::Style::MultilineMethodCallBraceLayout

Inherits:
Cop
  • Object
show all
Includes:
MultilineLiteralBraceLayout
Defined in:
lib/rubocop/cop/style/multiline_method_call_brace_layout.rb

Overview

This cop checks that the closing brace in a method call is symmetrical with respect to the opening brace and the method arguments.

If a method call’s opening brace is on the same line as the first argument of the call, then the closing brace should be on the same line as the last argument of the call.

If a method call’s opening brace is on a separate line from the first argument of the call, then the closing brace should be on the line after the last argument of the call.

Examples:


# bad
foo(a,
  b
  )

# bad
foo(
  a,
  b)

# good
foo(a,
  b)

#good
foo(
  a,
  b
)

Constant Summary collapse

SAME_LINE_MESSAGE =
'Closing method call brace must be on the ' \
'same line as the last argument when opening brace is on the same ' \
'line as the first argument.'.freeze
NEW_LINE_MESSAGE =
'Closing method call brace must be on the ' \
'line after the last argument when opening brace is on a separate ' \
'line from the first argument.'.freeze

Constants included from Util

Util::ASGN_NODES, Util::BYTE_ORDER_MARK, Util::EQUALS_ASGN_NODES, Util::LITERAL_REGEX, Util::OPERATOR_METHODS, Util::SHORTHAND_ASGN_NODES, Util::STRING_ESCAPES, Util::STRING_ESCAPE_REGEX

Instance Attribute Summary

Attributes inherited from Cop

#config, #corrections, #offenses, #processed_source

Instance Method Summary collapse

Methods included from MultilineLiteralBraceLayout

#autocorrect, #check_brace_layout

Methods inherited from Cop

#add_offense, all, #config_to_allow_offenses, #config_to_allow_offenses=, #cop_config, cop_name, #cop_name, cop_type, #correct, #debug?, #details, #display_cop_names?, #display_style_guide?, #excluded_file?, #extra_details?, inherited, #initialize, #join_force?, lint?, match?, #message, non_rails, #parse, qualified_cop_name, #reference_url, #relevant_file?, #style_guide_url, #target_ruby_version

Methods included from Sexp

#s

Methods included from NodePattern::Macros

#def_node_matcher, #def_node_search, #node_search_body

Methods included from AutocorrectLogic

#autocorrect?, #autocorrect_enabled?, #autocorrect_requested?, #support_autocorrect?

Methods included from IgnoredNode

#ignore_node, #ignored_node?, #part_of_ignored_node?

Methods included from Util

begins_its_line?, block_length, comment_line?, directions, double_quotes_acceptable?, double_quotes_required?, effective_column, ends_its_line?, first_part_of_call_chain, interpret_string_escapes, line_range, move_pos, numeric_range_size, on_node, operator?, parentheses?, parenthesized_call?, range_with_surrounding_comma, range_with_surrounding_space, source_range, strip_quotes, ternary_op?, to_string_literal, to_symbol_literal, within_node?

Methods included from PathUtil

absolute?, hidden?, issue_deprecation_warning, match_path?, relative_path

Constructor Details

This class inherits a constructor from RuboCop::Cop::Cop

Instance Method Details

#on_send(node) ⇒ Object



51
52
53
# File 'lib/rubocop/cop/style/multiline_method_call_brace_layout.rb', line 51

def on_send(node)
  check_brace_layout(node)
end