Class: TTFunk::Max

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

Overview

Maximum aggregate. Its value can only become greater.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(init_value = nil) ⇒ Max

Returns a new instance of Max.

Parameters:

  • init_value (Comparable) (defaults to: nil)

    initial value



12
13
14
15
# File 'lib/ttfunk/max.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/max.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 greater than the current value (or if there was no value).

Parameters:

  • new_value (Comparable)


22
23
24
25
26
27
28
# File 'lib/ttfunk/max.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/max.rb', line 34

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

  value
end