@sstelfox Thank you for your contribution. If `suffixes` is an empty array, then the call to `suffixes.shift` will produce `nil`, so then the call to `nil.downcase` will result in an exception. I think we need to be more defensive about not getting into an infinite loop. I'm thinking it should be something like:

<pre>
suffixes.find { |suffix| suffix.downcase == multiplier.downcase }
</pre>

Could you update and add a spec test to cover these behaviors (the case where we match case-insensitively and the case where there is no match).

I am going to close this PR for now, since we can't accept as is. Please do reopen this PR when you have a chance to fixup the PR. Thank you again for your contribution!