class RuboCop::Cop::Money::MissingCurrency

def on_send(node)

def on_send(node)
  receiver, method, _ = *node
  money_new(node) do |amount, currency_arg|
    return if amount&.splat_type?
    return if currency_arg
    add_offense(node, message: 'Money is missing currency argument') do |corrector|
      corrector.replace(
        node.loc.expression,
        "#{receiver.source}.#{method}(#{amount&.source || 0}, #{replacement_currency})",
      )
    end
  end
  if to_money_block?(node)
    add_offense(node, message: 'to_money is missing currency argument') do |corrector|
      corrector.replace(
        node.loc.expression,
        "#{receiver.source}.#{method} { |x| x.to_money(#{replacement_currency}) }",
      )
    end
  elsif to_money_without_currency?(node)
    add_offense(node, message: 'to_money is missing currency argument') do |corrector|
      corrector.insert_after(node.loc.expression, "(#{replacement_currency})")
    end
  end
end

def replacement_currency

def replacement_currency
  if cop_config['ReplacementCurrency']
    "'#{cop_config["ReplacementCurrency"]}'"
  else
    'Money::NULL_CURRENCY'
  end
end