def decrement(by: nil, max: nil)
      by ||= @default_increment
      by = -by.to_i

      max ||= @max
      max = -max unless max.nil?

      return increment(by: by, max: max)
    end
def decrement(by: nil, max: nil)
      by ||= @default_increment
      by = -by.to_i

      max ||= @max
      max = -max unless max.nil?

      return increment(by: by, max: max)
    end
Decrements the counter by the given value. If max is given, will loop around and start again from 0 (will decrement by (current_value + by) % max).
 @param [Integer, nil] by defaults to @increment, used to increment the underlying counter
 @param [Integer, nil] max if non-nil, the counter will loop and start over from 0 when it reaches max
 @example
   pry> counter.decrement(by: 10, max: 5) # returns 0, since 10 % 5 == 0
   pry> counter.decrement(by: 9, max: 5) # returns -4
 @return [Integer] the updated value