class Axiom::Optimizer

A optimization for an operation

Constants

Identity

An optimizer that returns the operation

VERSION

Gem version

Attributes

operation[R]

The operation to optimize

@return [Optimizable]

@api private

Public Class Methods

chain(*optimizers) click to toggle source

Chain together a list of optimizer classes into a callable object

@example

Optimizer.chain(Optimizer::Foo, Optimizer::Bar)

@param [Array<Class<Optimizer>>] optimizers

a list of optimizer classes to apply

@return [#call]

@api public

# File lib/axiom/optimizer.rb, line 64
def self.chain(*optimizers)
  optimizers.reverse_each.reduce(Identity) do |successor, optimizer|
    link_optimizers(optimizer, successor)
  end
end
new(operation) click to toggle source

Initialize an Optimizer

@param [Optimizable] operation

the operation to optimize

@return [undefined]

@api private

# File lib/axiom/optimizer.rb, line 29
def initialize(operation)
  @operation = operation
end

Private Class Methods