Existem maneiras mais elegantes de evitar números negativos no Ruby?

Como eu gostaria de fazer o seguinte cálculo:

total = subtotal - discount

Porquediscount pode ser maior quesubtotal, existe um código como o seguinte:

class Calculator
  def initialize(subtotal: subtotal, discount: discount)
    @subtotal = subtotal
    @discount = discount
  end

  def total
    [subtotal - discount, 0].max
  end

  private

  def subtotal
    @subtotal
  end

  def discount
    @discount
  end
end

Ao ver o[subtotal - discount, 0].max parte ou qualquer código semelhante, muitas vezes tenho que fazer uma pausa e pensar.

Existem maneiras mais elegantes de lidar com esse tipo de cálculo?

questionAnswers(4)

yourAnswerToTheQuestion