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