class RuboCop::Cop::Lint::NumberConversion
Complex(‘10’)
Float(‘10.2’)
Integer(‘10’, 10)
# good
’10’.to_c
’10.2’.to_f
’10’.to_i
# bad
@example
fails. Cop prefer parsing with number class instead.
number conversion can cause unexpected error if auto type conversion
This cop warns the usage of unsafe number conversions. Unsafe
def correct_method(node, receiver)
def correct_method(node, receiver) format(CONVERSION_METHOD_CLASS_MAPPING[node.method_name], number_object: receiver.source) end
def on_send(node)
def on_send(node) to_method(node) do |receiver, to_method| message = format( MSG, number_object: receiver.source, to_method: to_method, corrected_method: correct_method(node, receiver) ) add_offense(node, message: message) end end