measure

Library for converting between units (volume, mass and count) and unit systems (US, Imperial, Metric)


Keywords
js, measure, volume, mass, converter, customary, imperial, metric
License
MIT
Install
bower install measure

Documentation

measure Build Status

measure is a library for converting between units and unit systems.

It was created out of the need to adjust recipe amounts based on servings on the client-side, while also providing various output types.

There are some inconsistencies between US and Imperial systems. One example would be, a UK "pint" is 568ml, while a US "pint" is 473ml. There are many more. Because of this reason, it is important to state the unit system your are starting with when developing a recipe, unless you are using metric.

Unit Systems

Customary (US)

To use US customary units (default):

measure('1 teaspoon').milliliters() // 4.93
measure('1 teaspoon', 'US').milliliters() // 4.93

Imperial (UK and CAN)

To use the Imperial units:

measure('1 teaspoon', 'Imperial').milliliters() // 4.74

Volume

// US and Imperial

// long inputs
measure('1 teaspoon').teaspoons() // 1
measure('1 tablespoon').teaspoons() // 3

// abbrev. inputs
measure('1 1/2 tsp.').teaspoons() // 1.5
measure('1 tbsp.').teaspoons() // 3

// multiple inputs
measure('2 cups and 1 pint').quarts() // 1

// Metric

// long inputs
measure('1 milliliter').milliliters() // 1
measure('1 liter').milliliters() // 1000

// abbrev. inputs
measure('1.5 ml').milliliters() // 1.5
measure('1 l').milliliters() // 1000

// multiple inputs
measure('1 liter and 1 centiliter').milliliters() // 1010

Mass

// US and Imperial

// long inputs
measure('1 ounce').ounces() // 1
measure('1 pound').ounces() // 16

// abbrev. inputs
measure('1 1/2 oz.').ounces() // 1.5
measure('1 lbs.').pounds() // 1

// multiple inputs
measure('7 pounds 8 ounces').ounces() // 120

// Metric

// long inputs
measure('1 gram').grams() // 1
measure('1 kilogram').kilograms() // 1

// abbrev. inputs
measure('1 g.').grams() // 1
measure('1 kg.').kilograms() // 1

// multiple inputs
measure('3 kilograms and 2 grams').kilograms() // 3.002

Operations

measure('1 teaspoon').add('1 teaspoon').teaspoons(); // 2
measure('3 1/4 teaspoon').subtract('2 3/4 teaspoon').teaspoons(); // .5
measure('1 1/2 teaspoon').multiply(3).teaspoons(); // 4.5
measure('6 1/2 teaspoon').divide(2).teaspoons(); // 3.25

Contributing

NPM is used for build and tests, JSHint to enforce style.

Install Dependencies

npm install

Run Tests

$(npm bin)/jasmine

Build

Build is executed using pre-commit hooks

Influences

The great moment.js