Class: TTFunk::Min

Inherits:
Aggregate show all
Defined in:
lib/ttfunk/min.rb

Overview

Minimum aggregate. Its value can only become lower.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(init_value = nil) ⇒ Min

Returns a new instance of Min.

Parameters:

  • init_value (Comparable) (defaults to: nil)

    initial value



12
13
14
15
# File 'lib/ttfunk/min.rb', line 12

def initialize(init_value = nil)
  super()
  @value = init_value
end

Instance Attribute Details

#valueComparable? (readonly)

Value

Returns:

  • (Comparable, nil)


9
10
11
# File 'lib/ttfunk/min.rb', line 9

def value
  @value
end

Instance Method Details

#<<(new_value) ⇒ void

This method returns an undefined value.

Push a value. It will become the new value if it’s lower than the current value (or if there was no value).

Parameters:

  • new_value (Comparable)


22
23
24
25
26
27
28
# File 'lib/ttfunk/min.rb', line 22

def <<(new_value)
  new_value = coerce(new_value)

  if value.nil? || new_value < value
    @value = new_value
  end
end

#value_or(default) ⇒ any

Get the stored value or default.

Parameters:

  • default (any)

Returns:

  • (any)


34
35
36
37
38
# File 'lib/ttfunk/min.rb', line 34

def value_or(default)
  return default if value.nil?

  value
end