MCPcopy Index your code
hub / github.com/Philzen/measurement.js

github.com/Philzen/measurement.js @v0.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.1 ↗ · + Follow
36 symbols 78 edges 14 files 1 documented · 3%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

MeasurementJs

[Code Climate] (https://codeclimate.com/github/Philzen/measurement.js) [Build Status] (https://travis-ci.org/Philzen/measurement.js) [devDependency Status] (https://david-dm.org/philzen/measurement.js#info=devDependencies)

Nice unit of measure conversion, featuring: - Simplicity: an easy to-use, Behaviour driven API - Sophistication: Coverage Status full test coverage from project day one - Quality: aiming at high performance whilst maintaining a fair trade-off between accuracy - Adaptability: Easy to extend for new measurement types (incl. i18n tables)

measurement('Temperature').convert(20)
    .from(measurement.Unit.Temperature.CELSIUS)
    .to(measurement.Unit.Temperature.FAHRENHEIT);        // returns 68

measurement('Distance').convert(1)
    .from(measurement.Unit.Distance.KILOMETRE)
    .to(measurement.Unit.Distance.METRE);                // returns 1000

measurement('Speed').convert(10)
    .from(measurement.Unit.Speed.KILOMETRE_PER_HOUR)
    .to(measurement.Unit.Speed.METRES_PER_SECOND);       // returns 36

Test-Driven Development

The API definition and all conversion operations are covered by jasmine tests. The test suite can be executed straightaway and easily, for example:

  • Test directly in the browser Simply open test/index.html in the browser

  • PhantomJs via Karma test driver npm run-script karma That command is just a shorthand for node_modules/.bin/karma start. If you have karma-cli already installed globally, you can also just do karma start. Karma will startup and run all tests on phantomjs

  • Any Browser you like with Karma

    1. Set singleRun:false in ./karma.conf.js
    2. Start the Karma with npm run-script karma or npm test or ... (see above)
    3. navigate any browser you'd like to test to http://localhost:9876
    4. observe the output on the test console

Roadmap

For current and future state of affairs, have a peek at the Roadmap in the root project folder.

Get it

Currently you only need to download and include measurement.js in your project.

latest release - install via NPM:

In case the node package manager is part of your development stack, this may be more comfortable for you:

NPM

Currently tested platforms

Please feel free to add your own test results.

PhantomJS 1.9.7 (Linux): Executed 46 of 46 SUCCESS (0.027 secs / 0.022 secs)
Chrome 18.0.1025 (Linux): Executed 46 of 46 SUCCESS (0.06 secs / 0.035 secs)
Firefox 28.0.0 (Ubuntu): Executed 46 of 46 SUCCESS (0.037 secs / 0.026 secs)

Inspiring projects

  • http://www.codeproject.com/Articles/23087/Measurement-Unit-Conversion-Library (a C# / XML based approach)
  • http://momentjs.com/ (Beautiful & small code base, great simplistic API - role model for MeasurementJs)
  • http://www.convert-me.com/en/convert/weight/ (all possible conversions one could think of already implemented in JS)

Core symbols most depended-on inside this repo

expect
called by 67
test/lib/jasmine/jasmine.js
onComplete
called by 8
test/lib/jasmine/jasmine.js
isUndefined
called by 8
test/lib/jasmine/jasmine-html.js
specPluralizedFor
called by 7
test/lib/jasmine/jasmine-html.js
hasKey
called by 6
test/lib/jasmine/jasmine.js
tryIt
called by 4
test/lib/jasmine/jasmine.js
readyToConvert
called by 2
measurement.js
focusedSpecName
called by 2
test/lib/jasmine/jasmine-html.js

Shape

Function 36

Languages

TypeScript100%

Modules by API surface

test/lib/jasmine/jasmine.js18 symbols
test/lib/jasmine/jasmine-html.js9 symbols
measurement.js4 symbols
test/phantomRunner.js2 symbols
test/browserRunner.js2 symbols
test-main.js1 symbols

For agents

$ claude mcp add measurement.js \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact