AUOM Algebra (for) Units of Measurement

Build Status Dependency Status Code Climate

This is another unit system for ruby. It was created since I was not confident about the existing ones.

Features:

  • No unit conversions
  • No core patches (Especially does not require mathn!)
  • Dependency free.
  • Functional implementation style.
  • No magic coercion from number like strings to numbers.
  • Will never loose precision (Uses rational as scalar internally)
  • Allows namespacing of unit systems via subclass.
  • Well tested (100% mutation coverage via mutant)

The default set of predefined units is minimal as this library should be used in an application specific subclass. Override: AUOM::Unit.units

Installation

Install the gem auom via your preferred method.

Examples

``` ruby require ‘auom’

include AUOM

u = Unit.new(1, :meter) # <AUOM::Unit @scalar=1 meter> u * 100 # <AUOM::Unit @scalar=100 meter> u / Unit.new(10, :meter) # <AUOM::Unit @scalar=0.1> u / Unit.new(10, [ :meter, :meter ]) # <AUOM::Unit @scaler=0.1 1/meter> u * Unit.new(10, :meter) # <AUOM::Unit @scalar=10 meter^2> u * Unit.new(1, :euro) # <AUOM::Unit @scalar=1 euro*meter> u - Unit.new(1, :meter) # <AUOM::Unit @scalar=0 meter> u + Unit.new(1, :meter) # <AUOM::Unit @scalar=2 meter> u + Unit.new(1, :euro) # raises error about incompatible units ```

Credits

Room for your name!

Contributing

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don’t break it in a future version unintentionally.
  • Commit, do not mess with Rakefile or version (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

Copyright (c) 2014 Markus Schirp

See LICENSE for details