Sha256: 6b3a1ef16584ae08aadac15a512a3b4045e34b77522ffa49774c48a102a64980

Contents?: true

Size: 1.08 KB

Versions: 9

Compression:

Stored size: 1.08 KB

Contents

require 'unitwise/expression/matcher'
require 'unitwise/expression/parser'
require 'unitwise/expression/transformer'
require 'unitwise/expression/composer'
require 'unitwise/expression/decomposer'

module Unitwise
  # The Expression module encompases all functions around encoding and decoding
  # strings into Measurement::Units and vice-versa.
  module Expression
    class << self
      # Build a string representation of a collection of terms
      # @param terms [Array]
      # @return [String]
      # @example
      #   Unitwise::Expression.compose(terms) # => "m2/s2"
      # @api public
      def compose(terms, method = :primary_code)
        Composer.new(terms, method).expression
      end

      # Convert a string representation of a unit into an array of terms
      # @param expression [String] The string you wish to convert
      # @return [Array]
      # @example
      #   Unitwise::Expression.decompose("m2/s2")
      #   # => [<Unitwise::Term m2>, <Unitwise::Term s-2>]
      # @api public
      def decompose(expression)
        Decomposer.parse(expression)
      end

    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
unitwise-2.3.0 lib/unitwise/expression.rb
unitwise-2.2.0 lib/unitwise/expression.rb
unitwise-2.1.0 lib/unitwise/expression.rb
unitwise-2.0.0 lib/unitwise/expression.rb
unitwise-1.1.0 lib/unitwise/expression.rb
unitwise-193-1.0.4 lib/unitwise/expression.rb
unitwise-1.0.4 lib/unitwise/expression.rb
unitwise-1.0.3 lib/unitwise/expression.rb
unitwise-1.0.2 lib/unitwise/expression.rb