Sha256: d406e909291c192f5456d3077e1ca403347a32030cc71a84ab2f76688c10c4c3
Contents?: true
Size: 1.49 KB
Versions: 3
Compression:
Stored size: 1.49 KB
Contents
require 'parslet' 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) Composer.new(terms).expression end # Convert a string representation of a unit, and turn it into a # 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) expression = expression.to_s if decomposed.key?(expression) decomposed[expression] else decomposed[expression] = begin Decomposer.new(expression).terms rescue ExpressionError nil end end end private # A cache of decomposed strings. # @return [Hash] # @api private def decomposed @decomposed ||= {} end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
unitwise-0.6.1 | lib/unitwise/expression.rb |
unitwise-0.6.0 | lib/unitwise/expression.rb |
unitwise-0.5.1 | lib/unitwise/expression.rb |