Ух ты, их гораздо больше, чем я ожидал.Вот то, что я считаю полным списком в алфавитном порядке, с примером использования, взятым из их документации.Я также отметил, что не могу заставить их работать локально.
Alchemist
require 'alchemist'
Alchemist.setup
8.miles.to.meters
10.kilometers + 1.mile # 11.609344 kilometers
измерение
Это выглядит устаревшим, последний коммит был 5 лет назад, и мне кажется, что он не работает на 1.9.3.
include Measurement::Length
Inch.new(12).to_centimeters # => #<Measurement::Length::Centimeter:0x173c2b4 @units=30.48>
Физические единицы
require "phys/units"
Q = Phys::Quantity
U = Phys::Unit
Q[1.23,'km'] + Q[4.56,'m'] #=> Phys::Quantity[1.23456,'km']
Q[123,'mile'] / Q[2,'hr'] #=> Phys::Quantity[61,'mile/hr']
Q[61,'miles/hr'].want('m/s') #=> Phys::Quantity[27.26944,'m/s']
Q[1.0,'are'] == Q[10,'m']**2 #=> true
Количество
Обратите внимание, что это утверждает, что этоне готов к производству в README.
require 'quantity/all'
1.meter #=> 1 meter
1.meter.to_feet #=> 3.28083... foot
c = 299792458.meters / 1.second #=> 299792458 meter/second
newton = 1.meter * 1.kilogram / 1.second**2 #=> 1 meter*kilogram/second^2
newton.to_feet #=> 3.28083989501312 foot*kilogram/second^2
newton.convert(:feet) #=> 3.28083989501312 foot*kilogram/second^2
jerk_newton = newton / 1.second #=> 1 meter*kilogram/second^3
jerk_newton * 1.second == newton #=> true
SY
См. Ответ Бориса Ститницкого .
рубиновое измерение
require 'ruby-measurement'
measurement = Measurement.parse('3 feet') # => 3.0 ft.
measurement.convert_to(:yards) # => 1.0 yd.
measurement.convert_to(:in) # => 36.0 in.
measurement.convert_to(:inches) # => 36.0 in.
measurement1 = Measurement.parse('3 feet') # => 3.0 ft.
measurement2 = Measurement.parse('6 inch') # => 6.0 in.
measurement1 + measurement2 # => 3.5 ft.
рубиновое число
require 'ruby-units'
unit = Unit("mm") # unit only (defaults to a scalar of 1)
unit = Unit("1 mm") # create a simple unit
unit = Unit("1 kg*m^2/s^2") # complex unit
unit1 =~ unit2 # true if units are compatible
unit1.compatible?(unit2) # true if units are compatible
unit1 = unit >> "ft" # convert to 'feet'
unit3 = unit1 + unit2 # resulting object will have the units of unit1
unit1 === unit2 # true if units and quantity are the same, even if 'equivalent' by <=>
unit.convert_to('ft') # convert
(unit1 + unit2).convert_to('ft') # converts result to 'ft'
Единицы измерения для Ruby
require 'units'
three_meters = 3.meters
two_meters = 2.m
one_inch = 1.inch
3.meters.to_inches # => 118.1103 inch
10.inches.to_mm # => 254.0 millimeter
Единица измерения
require 'unitwise/ext'
1.yard == (1.foot * 3) # => true
1.quart < 1.liter # => true
2.meter + 3.inch - 1.yard # => <Unitwise::Measurement 1.1618 meter>
1.convert_to('kg.m2/s2') == 1.joule # => true
(20.kg * 9.8.convert_to('m/s2')).to_pound_force # => <Unitwise::Measurement 44.06255284754326 pound_force>
(300.horsepower * 60.second).to_calorie # => <Unitwise::Measurement 3208077.8414151203 calorie>
Фургон / Юнит
Как и у другого автора, у меня были проблемы с этим.Тем не менее, вы можете увидеть Jörg W Mittag для использования .
Как автор Unitwise , может быть очевидно, что это мой любимыйвне группы.Я призываю вас хотя бы проверить это.