Class: Rubocop::Cop::Style::LambdaCall
- Includes:
- ConfigurableEnforcedStyle
- Defined in:
- lib/rubocop/cop/style/lambda_call.rb
Overview
This cop checks for use of the lambda.(args) syntax.
Constant Summary
Constants inherited from Cop
Constants included from Util
Instance Attribute Summary
Attributes inherited from Cop
#config, #corrections, #offences, #processed_source
Instance Method Summary collapse
Methods included from ConfigurableEnforcedStyle
#alternative_style, #both_styles_detected, #correct_style_detected, #opposite_style_detected, #style, #unrecognized_style_detected
Methods inherited from Cop
#add_offence, all, #autocorrect?, #config_to_allow_offences, #config_to_allow_offences=, #cop_config, cop_name, #cop_name, cop_type, #debug?, #exclude_file?, #exclude_paths, #ignore_node, #include_file?, #include_paths, inherited, #initialize, lint?, non_rails, rails?, #relevant_file?, style?, #support_autocorrect?
Methods included from Util
block_length, command?, comment_line?, const_name, first_part_of_call_chain, lambda?, lambda_or_proc?, line_range, on_node, proc?, range_with_surrounding_space, source_range, strip_quotes
Constructor Details
This class inherits a constructor from Rubocop::Cop::Cop
Instance Method Details
#autocorrect(node) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/rubocop/cop/style/lambda_call.rb', line 32 def autocorrect(node) @corrections << lambda do |corrector| if style == :call receiver_node, = *node expr = node.loc.expression receiver = receiver_node.loc.expression.source replacement = expr.source.sub("#{receiver}.", "#{receiver}.call") corrector.replace(expr, replacement) else corrector.remove(node.loc.selector) end end end |
#message(node) ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/rubocop/cop/style/lambda_call.rb', line 46 def (node) if style == :call 'Prefer the use of `lambda.call(...)` over `lambda.(...)`.' else 'Prefer the use of `lambda.(...)` over `lambda.call(...)`.' end end |
#on_send(node) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rubocop/cop/style/lambda_call.rb', line 18 def on_send(node) _receiver, selector, = *node # we care only about `call` methods return unless selector == :call if style == :call && node.loc.selector.nil? # lambda.() does not have a selector add_offence(node, :expression) elsif style == :braces && node.loc.selector add_offence(node, :expression) end end |