Sha256: 9131db2828905b9a847703daae4c3119d677c68132fc56f471ee83b97ca63397

Contents?: true

Size: 823 Bytes

Versions: 3

Compression:

Stored size: 823 Bytes

Contents

# encoding: utf-8

module Axiom
  class Optimizer
    module Function
      module String

        # Abstract base class representing Length optimizations
        class Length < Optimizer
          include Unary

          # Optimize when the operand is constant
          class ConstantOperand < self
            include Unary::ConstantOperand
          end # class ConstantOperand

          # Optimize when the operand is unoptimized
          class UnoptimizedOperand < self
            include Unary::UnoptimizedOperand
          end # class UnoptimizedOperand

          Axiom::Function::String::Length.optimizer = chain(
            ConstantOperand,
            UnoptimizedOperand
          )

        end # class Length
      end # module String
    end # module Function
  end # class Optimizer
end # module Axiom

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
axiom-optimizer-0.2.0 lib/axiom/optimizer/function/string/length.rb
axiom-optimizer-0.1.1 lib/axiom/optimizer/function/string/length.rb
axiom-optimizer-0.1.0 lib/axiom/optimizer/function/string/length.rb