35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/rubocop/cop/money/missing_currency.rb', line 35
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
|