module Axiom::Optimizer::Function

Mixin for function optimizations

Public Class Methods

optimize_functions(functions) click to toggle source

Optimize the summarizers

@param [Hash{Attribute => Function}] functions

@return [Hash{Attribute => Function}]

@api private

# File lib/axiom/optimizer/function.rb, line 27
def self.optimize_functions(functions)
  optimized = {}
  functions.each do |attribute, function|
    optimized[attribute] = optimize_operand(function)
  end
  optimized.freeze
end
optimize_operand(operand) click to toggle source

Optimize the operand if possible

@param [#optimize, Object] operand

@return [Object]

@api private

# File lib/axiom/optimizer/function.rb, line 16
def self.optimize_operand(operand)
  operand.respond_to?(:optimize) ? operand.optimize : operand
end