I have a method and in order to check whether it is being passed a block, I do the following:
if block_given? res = yield(array[i], array[i+1]) else res = array[i] - array[i+1] end
However RuboCop is giving me a warning which I don't really understand in the if block_given?
line:
Use the return of the conditional for variable assignment and comparison
Is there any other more rubyist way of doing this?
Thanks
What the warning is telling you to do is:
res = if block_given? yield(array[i], array[i+1]) else array[i] - array[i+1] end
That is, having a single assignment instead of two (or even more).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With