class RuboCop::Cop::Style::StabbyLambdaParentheses
Check for parentheses around stabby lambda arguments. There are two different styles. Defaults to `require_parentheses`.
@example EnforcedStyle: require_parentheses (default)
# bad ->a,b,c { a + b + c } # good ->(a,b,c) { a + b + c}
@example EnforcedStyle: require_no_parentheses
# bad ->(a,b,c) { a + b + c } # good ->a,b,c { a + b + c}
Constants
- MSG_NO_REQUIRE
- MSG_REQUIRE
Public Instance Methods
autocorrect(node)
click to toggle source
# File lib/rubocop/cop/style/stabby_lambda_parentheses.rb, line 36 def autocorrect(node) if style == :require_parentheses missing_parentheses_corrector(node) elsif style == :require_no_parentheses unwanted_parentheses_corrector(node) end end
on_send(node)
click to toggle source
# File lib/rubocop/cop/style/stabby_lambda_parentheses.rb, line 28 def on_send(node) return unless stabby_lambda_with_args?(node) return unless redundant_parentheses?(node) || missing_parentheses?(node) add_offense(node.block_node.arguments) end
Private Instance Methods
message(_node)
click to toggle source
# File lib/rubocop/cop/style/stabby_lambda_parentheses.rb, line 54 def message(_node) style == :require_parentheses ? MSG_REQUIRE : MSG_NO_REQUIRE end
missing_parentheses?(node)
click to toggle source
# File lib/rubocop/cop/style/stabby_lambda_parentheses.rb, line 46 def missing_parentheses?(node) style == :require_parentheses && !parentheses?(node) end
missing_parentheses_corrector(node)
click to toggle source
# File lib/rubocop/cop/style/stabby_lambda_parentheses.rb, line 58 def missing_parentheses_corrector(node) lambda do |corrector| args_loc = node.loc.expression corrector.insert_before(args_loc, '(') corrector.insert_after(args_loc, ')') end end
parentheses?(node)
click to toggle source
# File lib/rubocop/cop/style/stabby_lambda_parentheses.rb, line 80 def parentheses?(node) node.block_node.arguments.loc.begin end
redundant_parentheses?(node)
click to toggle source
# File lib/rubocop/cop/style/stabby_lambda_parentheses.rb, line 50 def redundant_parentheses?(node) style == :require_no_parentheses && parentheses?(node) end
stabby_lambda_with_args?(node)
click to toggle source
# File lib/rubocop/cop/style/stabby_lambda_parentheses.rb, line 76 def stabby_lambda_with_args?(node) node.lambda_literal? && node.block_node.arguments? end
unwanted_parentheses_corrector(node)
click to toggle source
# File lib/rubocop/cop/style/stabby_lambda_parentheses.rb, line 67 def unwanted_parentheses_corrector(node) lambda do |corrector| args_loc = node.loc corrector.replace(args_loc.begin, '') corrector.remove(args_loc.end) end end