class RuboCop::Cop::Style::NilLambda
Checks for lambdas and procs that always return nil, which can be replaced with an empty lambda or proc instead.
@example
# bad -> { nil } lambda do next nil end proc { nil } Proc.new do break nil end # good -> {} lambda do end -> (x) { nil if x } proc {} Proc.new { nil if x }
Constants
- MSG
Public Instance Methods
Source
# File lib/rubocop/cop/style/nil_lambda.rb, line 46 def on_block(node) # rubocop:disable InternalAffairs/NumblockHandler return unless node.lambda_or_proc? return unless nil_return?(node.body) message = format(MSG, type: node.lambda? ? 'lambda' : 'proc') add_offense(node, message: message) do |corrector| autocorrect(corrector, node) end end
Private Instance Methods
Source
# File lib/rubocop/cop/style/nil_lambda.rb, line 58 def autocorrect(corrector, node) range = if node.single_line? range_with_surrounding_space(node.body.source_range) else range_by_whole_lines(node.body.source_range, include_final_newline: true) end corrector.remove(range) end