Class: RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout
- Includes:
- MultilineLiteralBraceLayout
- Defined in:
- lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb
Overview
This cop checks that the closing brace in a method definition is either on the same line as the last method parameter, or a new line.
When using the ‘symmetrical` (default) style:
If a method definition’s opening brace is on the same line as the first parameter of the definition, then the closing brace should be on the same line as the last parameter of the definition.
If an method definition’s opening brace is on the line above the first parameter of the definition, then the closing brace should be on the line below the last parameter of the definition.
When using the ‘new_line` style:
The closing brace of a multi-line method definition must be on the line after the last parameter of the definition.
When using the ‘same_line` style:
The closing brace of a multi-line method definition must be on the same line as the last parameter of the definition.
Constant Summary collapse
- SAME_LINE_MESSAGE =
'Closing method definition brace must be on the ' \ 'same line as the last parameter when opening brace is on the same ' \ 'line as the first parameter.'.freeze
- NEW_LINE_MESSAGE =
'Closing method definition brace must be on the ' \ 'line after the last parameter when opening brace is on a separate ' \ 'line from the first parameter.'.freeze
- ALWAYS_NEW_LINE_MESSAGE =
'Closing method definition brace must be ' \ 'on the line after the last parameter.'.freeze
- ALWAYS_SAME_LINE_MESSAGE =
'Closing method definition brace must be ' \ 'on the same line as the last parameter.'.freeze
Constants included from Util
Util::ASGN_NODES, Util::BYTE_ORDER_MARK, Util::CONDITIONAL_NODES, Util::EQUALS_ASGN_NODES, Util::LITERAL_REGEX, Util::LOGICAL_OPERATOR_NODES, Util::MODIFIER_NODES, Util::OPERATOR_METHODS, Util::SHORTHAND_ASGN_NODES
Instance Attribute Summary
Attributes inherited from Cop
#config, #corrections, #offenses, #processed_source
Instance Method Summary collapse
- #autocorrect(node) ⇒ Object
- #on_def(node) ⇒ Object (also: #on_defs)
Methods included from ConfigurableEnforcedStyle
#alternative_style, #alternative_styles, #ambiguous_style_detected, #correct_style_detected, #detected_style, #detected_style=, #no_acceptable_style!, #no_acceptable_style?, #opposite_style_detected, #style, #style_detected, #style_parameter_name, #supported_styles, #unexpected_style_detected
Methods inherited from Cop
#add_offense, all, autocorrect_incompatible_with, badge, #config_to_allow_offenses, #config_to_allow_offenses=, #cop_config, cop_name, #cop_name, #correct, department, #duplicate_location?, #excluded_file?, #find_location, #highlights, inherited, #initialize, #join_force?, lint?, match?, #message, #messages, non_rails, #parse, qualified_cop_name, #relevant_file?, #target_rails_version, #target_ruby_version
Methods included from AST::Sexp
Methods included from NodePattern::Macros
#def_node_matcher, #def_node_search, #node_search, #node_search_all, #node_search_body, #node_search_first
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?, comment_line?, double_quotes_required?, effective_column, ends_its_line?, escape_string, first_part_of_call_chain, interpret_string_escapes, line_range, needs_escaping?, on_node, operator?, parentheses?, parenthesized_call?, precede?, range_between, range_by_whole_lines, range_with_surrounding_comma, range_with_surrounding_space, same_line?, source_range, strip_quotes, stripped_source_upto, symbol_without_quote?, to_string_literal, to_supported_styles, to_symbol_literal, within_node?
Methods included from PathUtil
absolute?, find_file_upwards, match_path?, pwd, relative_path, reset_pwd, smart_path
Constructor Details
This class inherits a constructor from RuboCop::Cop::Cop
Instance Method Details
#autocorrect(node) ⇒ Object
84 85 86 |
# File 'lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb', line 84 def autocorrect(node) MultilineLiteralBraceCorrector.correct(processed_source, node) end |
#on_def(node) ⇒ Object Also known as: on_defs
79 80 81 |
# File 'lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb', line 79 def on_def(node) check_brace_layout(node.arguments) end |