class RuboCop::Cop::Money::UnsafeToMoney

Money.new(“2.000”, “USD”) #<Money value:2.00 currency:USD>
# good
“2.000”.to_money(“USD”) #<Money value:2000.00 currency:USD>
# bad
@example
Use ‘Money.new` instead.
Prevents the use of `to_money` because it has inconsistent behaviour.

def autocorrect(node)

def autocorrect(node)
  lambda do |corrector|
    receiver = node.receiver.source
    args = node.arguments.map(&:source)
    args.prepend(receiver)
    corrector.replace(node.loc.expression, "Money.new(#{args.join(', ')})")
  end
end

def on_send(node)

def on_send(node)
  return unless node.method?(:to_money)
  return if node.receiver.is_a?(AST::NumericNode)
  add_offense(node, location: :selector)
end