Class: Streamer::Functors::Multiply

Inherits:
Functor
  • Object
show all
Defined in:
lib/streamer/functors/multiply.rb

Overview

Multiply multiplies a set of terms together

Instance Attribute Summary

Attributes inherited from Functor

#options, #payload

Instance Method Summary collapse

Methods inherited from Functor

#class_name, #initialize, #type_name

Constructor Details

This class inherits a constructor from Streamer::Functors::Functor

Instance Method Details

#callObject



5
6
7
# File 'lib/streamer/functors/multiply.rb', line 5

def call
  multiply
end

#multiplyObject



9
10
11
12
13
14
15
16
17
18
# File 'lib/streamer/functors/multiply.rb', line 9

def multiply
  options.fetch(:terms).inject(1) do |total, item|
    unless item.is_a?(String) || item.is_a?(Numeric)
      fail "Streamer::Functor invalid term: #{item}"
    end
    val = total * (prop(item) || 0) if item.is_a? String
    val = total * item if item.is_a? Numeric
    val
  end
end