Alchemist
Doing conversions for you so you don’t have to google them and making code more readable.
Having code that looks like this is meaningless
meters = 8 * 1609.344You could add comments
meters = 8 * 1609.344 # converting miles to metersBut why not have this!
8.miles.to.metersYou can even perform mathematical operations
10.kilometers + 1.mile # 11.609344 kilometersHandling bytes now works according to the JEDEC memory standard
1.kb.to.b.to_f == 1024.0Converting distance of arc length on Earth to an (approximate) corresponding spherical geometry angle can be done with
require 'alchemist/geospatial'
1.mile.geospatial.to.degree == 0.014457066992474555To switch to the IEC memory standard, force SI units with
Alchemist.config.use_si = trueTo see all the units alchemist has built in conversion for, check out the units file
You may also register your own units
Alchemist.register(:distance, [:beard_second, :beard_seconds], 5.angstroms)Installation
gem install alchemist
Setup
In order for methods like 1.meter to work, you'll either need to setup Alchemist yourself:
Alchemist.setup # This will load every category of measurementif you only want to use one category for conversions you can load it individually:
Alchemist.setup('distance') # This will load only distanceRails
Setup
It is suggested that you add your Alchemist.setup call to config/initializers/alchemist.rb and then restart your rails server.
Rails Warning
Rails adds some methods like bytes to Numeric so it's highly recommended that instead of trying to call bytes on a numeric, you should use the measure method:
Alchemist.measure(10, :bytes)License
Alchemist is licensed under the MIT license as specified in the gemspec