lib/ttfunk/min.rb in ttfunk-1.7.0 vs lib/ttfunk/min.rb in ttfunk-1.8.0

- old
+ new

@@ -1,23 +1,37 @@ # frozen_string_literal: true module TTFunk + # Minimum aggregate. Its value can only become lower. class Min < Aggregate + # Value + # + # @return [Comparable, nil] attr_reader :value + # @param init_value [Comparable] initial value def initialize(init_value = nil) super() @value = init_value end + # Push a value. It will become the new value if it's lower than the current + # value (or if there was no value). + # + # @param new_value [Comparable] + # @return [void] def <<(new_value) new_value = coerce(new_value) if value.nil? || new_value < value @value = new_value end end + # Get the stored value or default. + # + # @param default [any] + # @return [any] def value_or(default) return default if value.nil? value end