Algebra with units of measurement.

27
2
Ruby

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

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

Copyright © 2014 Markus Schirp

See LICENSE for details