unit_measurements_us_complete 5.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/main.yml +31 -0
  3. data/.github/workflows/pages.yml +31 -0
  4. data/.gitignore +12 -0
  5. data/.rspec +3 -0
  6. data/.yardopts +2 -0
  7. data/CHANGELOG.md +645 -0
  8. data/Gemfile +7 -0
  9. data/Gemfile.lock +56 -0
  10. data/LICENSE.md +21 -0
  11. data/README.md +511 -0
  12. data/Rakefile +10 -0
  13. data/lib/unit_measurements/arithmetic.rb +225 -0
  14. data/lib/unit_measurements/base.rb +177 -0
  15. data/lib/unit_measurements/cache.rb +173 -0
  16. data/lib/unit_measurements/comparison.rb +64 -0
  17. data/lib/unit_measurements/configuration.rb +64 -0
  18. data/lib/unit_measurements/conversion.rb +92 -0
  19. data/lib/unit_measurements/errors/blank_quantity_error.rb +21 -0
  20. data/lib/unit_measurements/errors/blank_unit_error.rb +21 -0
  21. data/lib/unit_measurements/errors/missing_primitive_unit_error.rb +24 -0
  22. data/lib/unit_measurements/errors/parse_error.rb +37 -0
  23. data/lib/unit_measurements/errors/primitive_unit_already_set_error.rb +22 -0
  24. data/lib/unit_measurements/errors/unit_already_defined_error.rb +37 -0
  25. data/lib/unit_measurements/errors/unit_error.rb +36 -0
  26. data/lib/unit_measurements/extras/conversion_methods.rb +87 -0
  27. data/lib/unit_measurements/extras/numeric_methods.rb +85 -0
  28. data/lib/unit_measurements/formatter.rb +58 -0
  29. data/lib/unit_measurements/math.rb +120 -0
  30. data/lib/unit_measurements/measurement.rb +539 -0
  31. data/lib/unit_measurements/normalizer.rb +155 -0
  32. data/lib/unit_measurements/parser.rb +220 -0
  33. data/lib/unit_measurements/unit.rb +243 -0
  34. data/lib/unit_measurements/unit_group.rb +297 -0
  35. data/lib/unit_measurements/unit_group_builder.rb +224 -0
  36. data/lib/unit_measurements/unit_groups/acceleration.rb +36 -0
  37. data/lib/unit_measurements/unit_groups/all.rb +56 -0
  38. data/lib/unit_measurements/unit_groups/amount_of_substance.rb +13 -0
  39. data/lib/unit_measurements/unit_groups/angular_acceleration.rb +14 -0
  40. data/lib/unit_measurements/unit_groups/angular_velocity.rb +25 -0
  41. data/lib/unit_measurements/unit_groups/area.rb +49 -0
  42. data/lib/unit_measurements/unit_groups/catalytic_activity.rb +13 -0
  43. data/lib/unit_measurements/unit_groups/density.rb +33 -0
  44. data/lib/unit_measurements/unit_groups/dynamic_viscosity.rb +22 -0
  45. data/lib/unit_measurements/unit_groups/electric_charge.rb +20 -0
  46. data/lib/unit_measurements/unit_groups/electric_conductance.rb +15 -0
  47. data/lib/unit_measurements/unit_groups/electric_current.rb +19 -0
  48. data/lib/unit_measurements/unit_groups/electric_dipole_moment.rb +13 -0
  49. data/lib/unit_measurements/unit_groups/electric_potential.rb +17 -0
  50. data/lib/unit_measurements/unit_groups/electric_quadrupole_moment.rb +14 -0
  51. data/lib/unit_measurements/unit_groups/electrical_capacitance.rb +15 -0
  52. data/lib/unit_measurements/unit_groups/electrical_elastance.rb +13 -0
  53. data/lib/unit_measurements/unit_groups/electrical_inductance.rb +15 -0
  54. data/lib/unit_measurements/unit_groups/electrical_resistance.rb +16 -0
  55. data/lib/unit_measurements/unit_groups/energy.rb +58 -0
  56. data/lib/unit_measurements/unit_groups/force.rb +47 -0
  57. data/lib/unit_measurements/unit_groups/frequency.rb +16 -0
  58. data/lib/unit_measurements/unit_groups/illuminance.rb +18 -0
  59. data/lib/unit_measurements/unit_groups/information_entropy.rb +15 -0
  60. data/lib/unit_measurements/unit_groups/kinetic_viscosity.rb +18 -0
  61. data/lib/unit_measurements/unit_groups/length.rb +67 -0
  62. data/lib/unit_measurements/unit_groups/luminance.rb +21 -0
  63. data/lib/unit_measurements/unit_groups/luminous_flux.rb +11 -0
  64. data/lib/unit_measurements/unit_groups/luminous_intensity.rb +13 -0
  65. data/lib/unit_measurements/unit_groups/magnetic_field.rb +13 -0
  66. data/lib/unit_measurements/unit_groups/magnetic_flux.rb +15 -0
  67. data/lib/unit_measurements/unit_groups/magnetic_induction.rb +13 -0
  68. data/lib/unit_measurements/unit_groups/magnetomotive_force.rb +13 -0
  69. data/lib/unit_measurements/unit_groups/mass_flow_rate.rb +49 -0
  70. data/lib/unit_measurements/unit_groups/plane_angle.rb +30 -0
  71. data/lib/unit_measurements/unit_groups/power.rb +54 -0
  72. data/lib/unit_measurements/unit_groups/pressure.rb +60 -0
  73. data/lib/unit_measurements/unit_groups/quantity.rb +14 -0
  74. data/lib/unit_measurements/unit_groups/radiation_absorbed_dose.rb +14 -0
  75. data/lib/unit_measurements/unit_groups/radiation_equivalent_dose.rb +13 -0
  76. data/lib/unit_measurements/unit_groups/radiation_exposure.rb +15 -0
  77. data/lib/unit_measurements/unit_groups/radioactivity.rb +14 -0
  78. data/lib/unit_measurements/unit_groups/solid_angle.rb +18 -0
  79. data/lib/unit_measurements/unit_groups/sound_level.rb +13 -0
  80. data/lib/unit_measurements/unit_groups/temperature.rb +19 -0
  81. data/lib/unit_measurements/unit_groups/time.rb +29 -0
  82. data/lib/unit_measurements/unit_groups/torque.rb +40 -0
  83. data/lib/unit_measurements/unit_groups/velocity.rb +37 -0
  84. data/lib/unit_measurements/unit_groups/volume.rb +67 -0
  85. data/lib/unit_measurements/unit_groups/volumetric_flow_rate.rb +35 -0
  86. data/lib/unit_measurements/unit_groups/weight.rb +55 -0
  87. data/lib/unit_measurements/version.rb +8 -0
  88. data/lib/unit_measurements.rb +7 -0
  89. data/unit_measurements.gemspec +43 -0
  90. data/units.md +843 -0
  91. metadata +216 -0
@@ -0,0 +1,13 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::MagnetomotiveForce = UnitMeasurements.build do
6
+ primitive "A⋅t"
7
+
8
+ system :metric do
9
+ unit "A⋅t", aliases: ["A*t", "ampere-turn"]
10
+
11
+ unit "Gb", value: [Rational(10, (4 * Math::PI)), "A⋅t"], aliases: ["Gi", "gilbert", "gilberts"]
12
+ end
13
+ end
@@ -0,0 +1,49 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::MassFlowRate = UnitMeasurements.build do
6
+ primitive "kg/s"
7
+
8
+ system :metric do
9
+ unit "kg/s", aliases: ["kilogramme per second", "kilogrammes per second", "kilogram per second", "kilograms per second"]
10
+ unit "kg/min", value: "1/60 kg/s", aliases: ["kilogramme per minute", "kilogrammes per minute", "kilogram per minute", "kilograms per minute"]
11
+ unit "kg/h", value: "1/60 kg/min", aliases: ["kilogramme per hour", "kilogrammes per hour", "kilogram per hour", "kilograms per hour"]
12
+
13
+ unit "g/s", value: "1/1000 kg/s", aliases: ["gramme per second", "grammes per second", "gram per second", "grams per second"]
14
+ unit "g/min", value: "1/60 g/s", aliases: ["gramme per minute", "grammes per minute", "gram per minute", "grams per minute"]
15
+ unit "g/h", value: "1/60 g/min", aliases: ["gramme per hour", "grammes per hour", "gram per hour", "grams per hour"]
16
+
17
+ unit "t/s", value: "1000 kg/s", aliases: ["tonne per second", "tonnes per second", "metric tonne per second", "metric tonnes per second"]
18
+ unit "t/min", value: "1/60 t/s", aliases: ["tonne per minute", "tonnes per minute", "metric tonne per minute", "metric tonnes per minute"]
19
+ unit "t/h", value: "1/60 t/min", aliases: ["tonne per hour", "tonnes per hour", "metric tonne per hour", "metric tonnes per hour"]
20
+ end
21
+
22
+ system :us_customary do
23
+ unit "lb/s", value: "0.45359237 kg/s", aliases: ["pound per second", "pounds per second"]
24
+ unit "lb/min", value: "1/60 lb/s", aliases: ["pound per minute", "pounds per minute"]
25
+ unit "lb/h", value: "1/60 lb/min", aliases: ["pound per hour", "pounds per hour"]
26
+
27
+ unit "tn/s", value: "2000 lb/s", aliases: ["ton per second", "tons per second", "short ton per second", "short tons per second"]
28
+ unit "tn/min", value: "1/60 tn/s", aliases: ["ton per minute", "tons per minute", "short ton per minute", "short tons per minute"]
29
+ unit "tn/h", value: "1/60 tn/min", aliases: ["ton per hour", "tons per hour", "short ton per hour", "short tons per hour"]
30
+
31
+ unit "slug/s", value: "14.5939 kg/s", aliases: ["slug per second", "slugs per second"]
32
+ unit "slug/min", value: "1/60 slug/s", aliases: ["slug per minute", "slugs per minute"]
33
+ unit "slug/h", value: "1/60 slug/min", aliases: ["slug per hour", "slugs per hour"]
34
+ end
35
+
36
+ system :imperial do
37
+ unit "oz/s", value: "1/16 lb/s", aliases: ["ounce per second", "ounces per second"]
38
+ unit "oz/min", value: "1/60 oz/s", aliases: ["ounce per minute", "ounces per minute"]
39
+ unit "oz/h", value: "1/60 oz/min", aliases: ["ounce per hour", "ounces per hour"]
40
+
41
+ unit "gr/s", value: "1/7000 lb/s", aliases: ["grain per second", "grains per second"]
42
+ unit "gr/min", value: "1/60 gr/s", aliases: ["grain per minute", "grains per minute"]
43
+ unit "gr/h", value: "1/60 gr/min", aliases: ["grain per hour", "grains per hour"]
44
+
45
+ unit "LT/s", value: "2240 lb/s", aliases: ["long ton per second", "long tons per second"]
46
+ unit "LT/min", value: "1/60 LT/s", aliases: ["long ton per minute", "long tons per minute"]
47
+ unit "LT/h", value: "1/60 LT/min", aliases: ["long ton per hour", "long tons per hour"]
48
+ end
49
+ end
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::PlaneAngle = UnitMeasurements.build do
6
+ primitive "rad"
7
+
8
+ system :metric do
9
+ si_unit "rad", aliases: ["radian", "radians"]
10
+
11
+ unit "deg", value: [(Math::PI / 180), "rad"], aliases: ["°", "degree", "degrees", "degree of arc", "degrees of arc", "arcdegree", "arcdegrees"]
12
+ unit "gon", value: [(Math::PI / 200), "rad"], aliases: ["ᵍ", "grad", "gradian", "gradians"]
13
+ unit "arcmin", value: [Rational(1, 60), "deg"], aliases: ["′", "amin", "arcminute", "arcminutes"]
14
+ unit "arcsec", value: [Rational(1, 60), "arcmin"], aliases: ["″", "asec", "arcsecond", "arcseconds"]
15
+ end
16
+
17
+ unit "tr", value: [1, "cir"], aliases: ["turn", "turns"]
18
+
19
+ unit "cir", value: [360, "deg"], aliases: ["circle", "circles"]
20
+ unit "rev", value: [1, "cir"], aliases: ["revolution", "revolutions"]
21
+ unit "cyc", value: [1, "cir"], aliases: ["cycle", "cycles"]
22
+ unit "mil", value: [Rational(1, 6400), "cir"], aliases: ["mils"]
23
+
24
+ unit "brad", value: [(Math::PI / 128), "rad"], aliases: ["b°", "bdeg", "binary degree", "binary radian", "binary degrees", "binary radians"]
25
+
26
+ unit "sign", value: "30 deg", aliases: ["signs"]
27
+ unit "octant", value: "45 deg", aliases: ["octants"]
28
+ unit "sextant", value: "60 deg", aliases: ["sextants"]
29
+ unit "quadrant", value: "90 deg", aliases: ["quadrants"]
30
+ end
@@ -0,0 +1,54 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::Power = UnitMeasurements.build do
6
+ primitive "W"
7
+
8
+ system :metric do
9
+ si_unit "W", aliases: ["watt", "watts"]
10
+
11
+ unit "p", value: "980.665 W", aliases: ["poncelet", "poncelets"]
12
+
13
+ unit "hp (M)", value: "735.49875 W", aliases: ["PS", "metric horsepower"]
14
+
15
+ unit "kgf⋅m", value: "9.80665 W", aliases: ["kgf*m", "kilogramme-force meter", "kilogram-force meter"]
16
+ unit "erg/s", value: "1e-7 W", aliases: ["erg per second", "ergs per second"]
17
+
18
+ unit "cal/s", value: "4.1868 W", aliases: ["calorie per second", "calories per second"]
19
+ unit "cal/min", value: "0.06978 W", aliases: ["calorie per minute", "calories per minute"]
20
+ unit "cal/h", value: "0.001163 W", aliases: ["calorie per hour", "calories per hour"]
21
+
22
+ unit "l·atm/s", value: "101.325 W", aliases: ["l*atm/s", "litre-atmosphere per second", "liter-atmosphere per second"]
23
+ unit "l·atm/min", value: "1.68875 W", aliases: ["l*atm/min", "litre-atmosphere per minute", "liter-atmosphere per minute"]
24
+ unit "l·atm/h", value: "0.028145833333333335 W", aliases: ["l*atm/h", "litre-atmosphere per hour", "liter-atmosphere per hour"]
25
+
26
+ unit "atm⋅cm³/s", value: "0.101325 W", aliases: ["atm*cm^3/s", "atmosphere-cubic centimetre per second", "atmosphere-cubic centimeter per second"]
27
+ unit "atm⋅cm³/min", value: "1.68875e-3 W", aliases: ["atm*cm^3/min", "atmosphere-cubic centimetre per minute", "atmosphere-cubic centimeter per minute"]
28
+ unit "atm⋅cm³/h", value: "2.814583333333333e-5 W", aliases: ["atm*cm^3/h", "atmosphere-cubic centimetre per hour", "atmosphere-cubic centimeter per hour"]
29
+ end
30
+
31
+ system :imperial do
32
+ unit "hp", value: "745.69987158227022 W", aliases: ["hp (I)", "horsepower"]
33
+
34
+ unit "ft⋅lbf/s", value: "1.3558179483314004 W", aliases: ["ft*lbf/s", "foot pound-force per second"]
35
+ unit "ft⋅lbf/min", value: "0.02259696580552334 W", aliases: ["ft*lbf/min", "foot pound-force per minute"]
36
+ unit "ft⋅lbf/h", value: "0.00037661609675872 W", aliases: ["ft*lbf/h", "foot pound-force per hour"]
37
+
38
+ unit "atm⋅ft³/s", value: "2.8692044809344e+3 W", aliases: ["atm*ft^3/s", "atmosphere-cubic foot per second"]
39
+ unit "atm⋅ft³/min", value: "47.82007468224 W", aliases: ["atm*ft^3/min", "atmosphere-cubic foot per minute"]
40
+ unit "atm⋅ft³/h", value: "0.79700124704 W", aliases: ["atm*ft^3/h", "atmosphere-cubic foot per hour"]
41
+ end
42
+
43
+ system :us_customary do
44
+ unit "BTU/s", value: "1055.05585262 W", aliases: ["british thermal unit per second", "british thermal units per second"]
45
+ unit "BTU/min", value: "17.584264210333 W", aliases: ["british thermal unit per minute", "british thermal units per minute"]
46
+ unit "BTU/h", value: "0.29307107017222 W", aliases: ["british thermal unit per hour", "british thermal units per hour"]
47
+ end
48
+
49
+ system :planck_units do
50
+ unit "Pₚ", value: "3.6283e+52 W", aliases: ["planck power", "quantum power"]
51
+ end
52
+
53
+ unit "lusec", value: "133.3224 μW", aliases: ["lusecs"]
54
+ end
@@ -0,0 +1,60 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::Pressure = UnitMeasurements.build do
6
+ primitive "Pa"
7
+
8
+ system :metric do
9
+ si_unit "Pa", aliases: ["pascal", "pascals"]
10
+
11
+ unit "Ba", value: "0.1 Pa", aliases: ["barye", "baryes"]
12
+ unit "bar", value: "100 kPa", aliases: ["bars"]
13
+ unit "atm", value: "101325 Pa", aliases: ["atmosphere", "atmospheres"]
14
+ unit "Torr", value: "1/760 atm", aliases: ["torr"]
15
+
16
+ unit "μmHg", value: "0.133322387415 Pa", aliases: ["micrometer of mercury", "micrometers of mercury", "micrometre of mercury", "micrometres of mercury"]
17
+ unit "mmHg", value: "133.322387415 Pa", aliases: ["millimeter of mercury", "millimeters of mercury", "millimetre of mercury", "millimetres of mercury"]
18
+ unit "cmHg", value: "1333.22387415 Pa", aliases: ["centimeter of mercury", "centimeters of mercury", "centimetre of mercury", "centimetres of mercury"]
19
+
20
+ unit "mH₂O", value: "9.80665 kPa", aliases: ["mH2O", "meter of water", "meters of water", "metre of water", "metres of water"]
21
+ unit "dmH₂O", value: "980.665 Pa", aliases: ["dmH2O", "decimeter of water", "decimeters of water", "decimetre of water", "decimetres of water"]
22
+ unit "cmH₂O", value: "98.0665 Pa", aliases: ["cmH2O", "centimeter of water", "centimeters of water", "centimetre of water", "centimetres of water"]
23
+ unit "mmH₂O", value: "9.80665 Pa", aliases: ["mmH2O", "millimeter of water", "millimeters of water", "millimetre of water", "millimetres of water"]
24
+
25
+ unit "kgf/m²", value: "9.80665 Pa", aliases: ["kgf/m^2", "kilogram-force per square metre", "kilogramme-force per square metre"]
26
+ unit "kgf/mm²", value: "9.80665 MPa", aliases: ["kgf/mm^2", "kilogram-force per square millimetre", "kilogramme-force per square millimetre"]
27
+ unit "kgf/dm²", value: "980.665 Pa", aliases: ["kgf/dm^2", "kilogram-force per square decimetre", "kilogramme-force per square decimetre"]
28
+ end
29
+
30
+ system :imperial do
31
+ unit "psf", value: "47.880259 Pa", aliases: ["lb/ft²", "lb/ft^2", "pound per square foot", "pounds per square foot"]
32
+ unit "psi", value: "6.894757 kPa", aliases: ["lb/in²", "lb/in^2", "pound per square inch", "pounds per square inch"]
33
+ unit "ksi", value: "1000 psi", aliases: ["kip per square inch", "kilopound per square inch", "kilopounds per square inch"]
34
+
35
+ unit "LT/ft²", value: "1.0725178011595e+5 Pa", aliases: ["LT/ft^2", "long ton per square foot", "long tons per square foot"]
36
+ unit "pdl/ft²", value: "1.488164 Pa", aliases: ["pdl/ft^2", "poundal per square foot", "poundals per square foot"]
37
+ end
38
+
39
+ system :us_customary do
40
+ unit "inHg", value: "3.386388640341 kPa", aliases: ["″Hg", "inch of mercury", "inches of mercury"]
41
+ unit "ftHg", value: "40.636663684092 kPa", aliases: ["′Hg", "foot of mercury", "feet of mercury"]
42
+
43
+ unit "ftH₂O", value: "2.98898 kPa", aliases: ["ftH2O", "foot of water", "feet of water"]
44
+ unit "inH₂O", value: "249.0889 Pa", aliases: ["inH2O", "Aq", "inAq", "inch of water", "inches of water", "inch of water gauge", "inches of water gauge", "inch of water column", "inches of water column"]
45
+
46
+ unit "tn/ft²", value: "9.5760518e+4 Pa", aliases: ["tn/ft^2", "ton per square foot", "tons per square foot", "short ton per square foot", "short tons per square foot"]
47
+ end
48
+
49
+ system :metre_tonne_second do
50
+ unit "pz", value: "1 kPa", aliases: ["pieze", "pièze"]
51
+ end
52
+
53
+ system :gravitational_metric do
54
+ unit "at", value: "98066.5 Pa", aliases: ["technical atmosphere", "technical atmospheres"]
55
+ end
56
+
57
+ system :planck_units do
58
+ unit "Pₚ", value: "4.63309e+113 Pa", aliases: ["planck pressure", "quantum pressure"]
59
+ end
60
+ end
@@ -0,0 +1,14 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::Quantity = UnitMeasurements.build do
6
+ primitive "pc"
7
+
8
+ unit "pc", aliases: ["pcs", "piece", "pieces"]
9
+
10
+ unit "pr", value: "2 pc", aliases: ["pair", "pairs"]
11
+ unit "dz", value: "6 pr", aliases: ["doz", "dozen", "dozens"]
12
+ unit "gr", value: "12 doz", aliases: ["gross", "grosses"]
13
+ unit "gg", value: "12 gr", aliases: ["great gross", "great grosses", "grand gross", "grand grosses", "dozen gross", "dozen grosses"]
14
+ end
@@ -0,0 +1,14 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::RadiationAbsorbedDose = UnitMeasurements.build do
6
+ primitive "Gy"
7
+
8
+ system :metric do
9
+ si_unit "Gy", aliases: ["gray", "grays"]
10
+
11
+ unit "rad", value: "0.01 Gy", aliases: ["radiation absorbed dose"]
12
+ unit "erg/g", value: "1e-4 Gy", aliases: ["erg per gram", "erg per gramme", "ergs per gram", "ergs per gramme"]
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::RadiationEquivalentDose = UnitMeasurements.build do
6
+ primitive "Sv"
7
+
8
+ system :metric do
9
+ si_unit "Sv", aliases: ["sievert", "sieverts"]
10
+
11
+ unit "rem", value: "0.01 Sv", aliases: ["röntgen equivalent man", "roentgen equivalent man"]
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::RadiationExposure = UnitMeasurements.build do
6
+ primitive "C/kg"
7
+
8
+ system :metric do
9
+ si_unit "C/kg", aliases: ["coulomb per kilogram", "coulomb per kilogramme", "coulombs per kilogram", "coulombs per kilogramme"]
10
+ end
11
+
12
+ system :legacy_units do
13
+ unit "R", value: "0.000258 C/kg", aliases: ["röntgen", "roentgen", "roentgens"]
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::Radioactivity = UnitMeasurements.build do
6
+ primitive "Bq"
7
+
8
+ system :metric do
9
+ si_unit "Bq", aliases: ["becquerel", "becquerels"]
10
+ end
11
+
12
+ unit "Ci", value: "3.7e+10 Bq", aliases: ["curie", "curies"]
13
+ unit "Rd", value: "1e+6 Bq", aliases: ["rutherford", "rutherfords"]
14
+ end
@@ -0,0 +1,18 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::SolidAngle = UnitMeasurements.build do
6
+ primitive "sr"
7
+
8
+ system :metric do
9
+ si_unit "sr", aliases: ["steradian", "steradians"]
10
+
11
+ unit "deg²", value: [((Math::PI / 180) ** 2), "sr"], aliases: ["(°)²", "sq °", "square degree", "square degrees"] # (π / 180)² sr
12
+ end
13
+
14
+ unit "sp", value: [(4 * Math::PI), "sr"], aliases: ["spat", "spats"] # (4 * π) sr
15
+
16
+ unit "arcmin²", value: [(Rational(1, 60) ** 2), "deg²"], aliases: ["(′)²", "sq ′", "square arcminute", "square arcminutes"] # ((π / 180) * (1 / 60))² sr
17
+ unit "arcsec²", value: [(Rational(1, 60) ** 2), "arcmin²"], aliases: ["(″)²", "sq ″", "square arcsecond", "square arcseconds"] # ((π / 180) * (1 / 3600))² sr
18
+ end
@@ -0,0 +1,13 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::SoundLevel = UnitMeasurements.build do
6
+ primitive "dB"
7
+
8
+ system :metric do
9
+ si_unit "B", aliases: ["bel", "bels"]
10
+
11
+ unit "Np", value: [(20 / Math.log(10)), "dB"], aliases: ["neper", "nepers"] # (20 / ln(10)) dB
12
+ end
13
+ end
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::Temperature = UnitMeasurements.build do
6
+ primitive "K"
7
+
8
+ system :metric do
9
+ si_unit "K", aliases: ["kelvin", "kelvins"]
10
+ end
11
+
12
+ system :english_engineering do
13
+ unit "°R", value: "5/9 K", aliases: ["R", "°Ra", "Ra", "rankine"]
14
+ end
15
+
16
+ system :planck_units do
17
+ unit "Tₚ", value: "1.416784e+32 K", aliases: ["planck temperature", "quantum temperature"]
18
+ end
19
+ end
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::Time = UnitMeasurements.build do
6
+ primitive "s"
7
+
8
+ system :metric do
9
+ si_unit "s", aliases: ["sec", "second", "seconds"]
10
+
11
+ unit "h", value: "60 min", aliases: ["hr", "hour", "hours"]
12
+ unit "d", value: "24 h", aliases: ["day", "days"]
13
+ unit "min", value: "60 s", aliases: ["minute", "minutes"]
14
+ end
15
+
16
+ system :planck_units do
17
+ unit "tₚ", value: "5.391247e-44 s", aliases: ["planck time", "quantum time"]
18
+ end
19
+
20
+ unit "wk", value: "7 d", aliases: ["week", "weeks"]
21
+ unit "mo", value: "30.4167 d", aliases: ["month", "months"]
22
+ unit "yr", value: "365 d", aliases: ["y", "year", "years"]
23
+
24
+ unit "ftn", value: "2 wk", aliases: ["4tnite", "fortnight", "fortnights"]
25
+ unit "qtr", value: "3 mo", aliases: ["quarter", "quarters"]
26
+ unit "dec", value: "10 y", aliases: ["decade", "decades"]
27
+
28
+ unit "cent", value: "10 dec", aliases: ["century", "centuries"]
29
+ end
@@ -0,0 +1,40 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::Torque = UnitMeasurements.build do
6
+ primitive "N·m"
7
+
8
+ system :metric do
9
+ si_unit "N·m", aliases: ["N*m", "newton meter", "newton metre"]
10
+
11
+ unit "N·cm", value: "0.01 N·m", aliases: ["N*cm", "newton centimeter", "newton centimetre"]
12
+ unit "N·mm", value: "0.001 N·m", aliases: ["N*mm", "newton millimeter", "newton millimetre"]
13
+
14
+ unit "gf·m", value: "9.80665e-3 N·m", aliases: ["gf*m", "gram-force meter", "gramme-force metre"]
15
+ unit "gf·cm", value: "9.80665e-5 N·m", aliases: ["gf*cm", "gram-force centimeter", "gramme-force centimetre"]
16
+ unit "gf·mm", value: "9.80665e-6 N·m", aliases: ["gf*mm", "gram-force millimeter", "gramme-force millimetre"]
17
+
18
+ unit "kgf·m", value: "9.80665 N·m", aliases: ["kgf*m", "Kilogram-force meter", "kilogramme-force metre"]
19
+ unit "kgf·cm", value: "0.0980665 N·m", aliases: ["kgf*cm", "Kilogram-force centimeter", "kilogramme-force centimetre"]
20
+ unit "kgf·mm", value: "0.00980665 N·m", aliases: ["kgf*mm", "Kilogram-force millimeter", "kilogramme-force millimetre"]
21
+
22
+ unit "dyn·m", value: "1e-5 N·m", aliases: ["dyn*m", "dyne meter", "dyne metre"]
23
+ unit "dyn·cm", value: "1e-7 N·m", aliases: ["dyn*cm", "dyne centimeter", "dyne centimetre"]
24
+ unit "dyn·mm", value: "1e-8 N·m", aliases: ["dyn*mm", "dyne millimeter", "dyne millimetre"]
25
+ end
26
+
27
+ system :foot_pound_second do
28
+ unit "pdl⋅ft", value: "0.0421401100938048 N·m", aliases: ["pdl*ft", "poundal foot", "foot-poundal"]
29
+ unit "ozf·in", value: "0.00706155 N·m", aliases: ["oz⋅in", "ozf*in", "oz*in", "ounce-force inch", "ounce-inch"]
30
+ unit "ozf·ft", value: "12 ozf·in", aliases: ["oz⋅ft", "ozf*ft", "oz*ft", "ounce-force foot", "ounce-foot"]
31
+ end
32
+
33
+ system :imperial do
34
+ unit "lbf⋅in", value: "0.1129848290276167 N·m", aliases: ["lb⋅in", "lbf*in", "lb*in", "pound-force inch", "pound-inch"]
35
+ end
36
+
37
+ system :english_engineering do
38
+ unit "lbf⋅ft", value: "12 lbf⋅in", aliases: ["lb⋅ft", "lbf*ft", "lb*ft", "pound-force foot", "pound-foot"]
39
+ end
40
+ end
@@ -0,0 +1,37 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::Velocity = UnitMeasurements.build do
6
+ primitive "m/s"
7
+
8
+ system :metric do
9
+ unit "m/s", aliases: ["meter per second", "meters per second", "metre per second", "metres per second"]
10
+ unit "m/min", value: "1/60 m/s", aliases: ["meter per minute", "meters per minute", "metre per minute", "metres per minute"]
11
+ unit "m/h", value: "1/60 m/min", aliases: ["meter per hour", "meters per hour", "metre per hour", "metres per hour"]
12
+ end
13
+
14
+ system :imperial do
15
+ unit "in/s", value: "0.0254 m/s", aliases: ["ips", "inch per second", "inches per second"]
16
+ unit "in/min", value: "1/60 in/s", aliases: ["ipm", "inch per minute", "inches per minute"]
17
+ unit "in/h", value: "1/60 in/min", aliases: ["iph", "inch per hour", "inches per hour"]
18
+
19
+ unit "mi/s", value: "1609.344 m/s", aliases: ["mps", "mile per second", "miles per second"]
20
+ unit "mi/min", value: "1/60 mi/s", aliases: ["mpm", "mile per minute", "miles per minute"]
21
+ unit "mi/h", value: "1/60 mi/min", aliases: ["mph", "mile per hour", "miles per hour"]
22
+ end
23
+
24
+ system :foot_pound_second do
25
+ unit "ft/s", value: "12 in/s", aliases: ["fps", "foot per second", "feet per second"]
26
+ unit "ft/min", value: "1/60 ft/s", aliases: ["fpm", "foot per minute", "feet per minute"]
27
+ unit "ft/h", value: "1/60 ft/min", aliases: ["fph", "foot per hour", "feet per hour"]
28
+ end
29
+
30
+ system :furlong_firkin_fortnight do
31
+ unit "fur/ftn", value: "1.663e-4 m/s", aliases: ["furlong per fortnight", "furlongs per fortnight"]
32
+ end
33
+
34
+ system :meteorology_aviation_maritime do
35
+ unit "Kn", value: "0.514773 m/s", aliases: ["kt", "knot", "knots"]
36
+ end
37
+ end
@@ -0,0 +1,67 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::Volume = UnitMeasurements.build do
6
+ primitive "m³"
7
+
8
+ system :metric do
9
+ si_unit "l", aliases: ["liter", "litre", "liters", "litres"]
10
+
11
+ unit "λ", value: "1e-9 m³", aliases: ["lambda", "lambdas"]
12
+ unit "m³", value: "1000 l", aliases: ["m^3", "cu m", "cubic meter", "cubic meters", "cubic metre", "cubic metres"]
13
+ unit "st", value: "1 m³", aliases: ["stère", "stere", "steres"]
14
+
15
+ unit "mm³", value: "1e-9 m³", aliases: ["mm^3", "cu mm", "cubic millimeter", "cubic millimeters", "cubic millimetre", "cubic millimetres"]
16
+ unit "cm³", value: "1e-6 m³", aliases: ["cm^3", "cu cm", "cubic centimeter", "cubic centimeters", "cubic centimetre", "cubic centimetres"]
17
+ unit "dm³", value: "1 l", aliases: ["dm^3", "cu dm", "cubic decimeter", "cubic decimeters", "cubic decimetre", "cubic decimetres"]
18
+ unit "km³", value: "1e+9 m³", aliases: ["km^3", "cu km", "cubic kilometer", "cubic kilometers", "cubic kilometre", "cubic kilometres"]
19
+ end
20
+
21
+ system :imperial do
22
+ unit "in³", value: "16.387064 ml", aliases: ["in^3", "cu in", "cubic inch", "cubic inches"]
23
+ unit "ft³", value: "1728 in³", aliases: ["ft^3", "cu ft", "cubic foot", "cubic feet"]
24
+ unit "yd³", value: "27 ft³", aliases: ["yd^3", "cu yd", "cubic yard", "cubic yards"]
25
+ unit "mi³", value: "5451776000 yd³", aliases: ["mi^3", "cu mi", "cubic mile", "cubic miles"]
26
+ unit "ftm³", value: "216 ft³", aliases: ["ftm^3", "cu ftm", "cubic fathom", "cubic fathoms"]
27
+
28
+ unit "c", value: "284.130625e-6 m³", aliases: ["cup", "cups"]
29
+
30
+ unit "qt", value: "0.0011365225 m³", aliases: ["quart", "quarts"]
31
+ unit "pk", value: "2 gal", aliases: ["peck", "pecks"]
32
+ unit "gi", value: "1/2 c", aliases: ["gill", "gills"]
33
+ unit "pt", value: "1/8 gal", aliases: ["pint", "pints"]
34
+ unit "gt", value: "1/288 floz", aliases: ["gtt", "drop", "drops"]
35
+
36
+ unit "gal", value: "4.54609 dm³", aliases: ["gallon", "gallons"]
37
+ unit "bsh", value: "8 gal", aliases: ["bu", "bushel", "bushels"]
38
+ unit "min", value: "1/480 floz", aliases: ["minim", "minims"]
39
+ unit "bbl", value: "36 gal", aliases: ["barrel", "barrels"]
40
+ unit "tsp", value: "1/24 gi", aliases: ["teaspoon", "teaspoons"]
41
+ unit "bkt", value: "4 gal", aliases: ["bucket", "buckets"]
42
+ unit "hhd", value: "2 bbl", aliases: ["hogshead", "hogsheads"]
43
+ unit "fls", value: "1/24 floz", aliases: ["fluid scruple", "fluid scruples"]
44
+ unit "fir", value: "0.25 bbl", aliases: ["firkin", "firkins"]
45
+
46
+ unit "dspn", value: "10 ml", aliases: ["dsp", "dstspn", "dessertspoon", "dessertspoons"]
47
+ unit "tbsp", value: "3 tsp", aliases: ["tbs", "tablespoon", "tablespoons"]
48
+ unit "floz", value: "1/160 gal", aliases: ["fluid ounce", "fluid ounces"]
49
+ unit "fldr", value: "1/8 floz", aliases: ["fluid drachm", "fluid drachms"]
50
+ end
51
+
52
+ system :us_customary do
53
+ unit "cd", value: "128 ft³", aliases: ["cord", "cords"]
54
+
55
+ unit "pot", value: "2 qt", aliases: ["pottle", "pottles"]
56
+ unit "bdft", value: "144 in³", aliases: ["bf", "fbm", "board-foot", "board-feet"]
57
+
58
+ unit "ac⋅ft", value: "43560 ft³", aliases: ["acre-foot", "acre-feet"]
59
+ unit "ac⋅in", value: "6272640 in³", aliases: ["acre-inch", "acre-inches"]
60
+ unit "usgal", value: "3.785411784 dm³", aliases: ["us-gallon", "us-gal"]
61
+ unit "cd-ft", value: "1/8 cd", aliases: ["cord-foot", "cord-feet"]
62
+ end
63
+
64
+ system :planck_units do
65
+ unit "Vₚ", value: "4.2217e-105 m³", aliases: ["planck volume", "quantum volume"]
66
+ end
67
+ end
@@ -0,0 +1,35 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::VolumetricFlowRate = UnitMeasurements.build do
6
+ primitive "m³/s"
7
+
8
+ system :metric do
9
+ unit "m³/s", aliases: ["m^3/s", "cubic metre per second", "cubic metres per second", "cubic meter per second", "cubic meters per second"]
10
+ unit "m³/min", value: "1/60 m³/s", aliases: ["m^3/min", "cubic metre per minute", "cubic metres per minute", "cubic meter per minute", "cubic meters per minute"]
11
+ unit "m³/h", value: "1/60 m³/min", aliases: ["m^3/h", "cubic metre per hour", "cubic metres per hour", "cubic meter per hour", "cubic meters per hour"]
12
+
13
+ unit "l/s", value: "1/1000 m³/s", aliases: ["L/s", "litre per second", "litres per second", "liter per second", "liters per second"]
14
+ unit "l/min", value: "1/60 l/s", aliases: ["L/min", "litre per minute", "litres per minute", "liter per minute", "liters per minute"]
15
+ unit "l/h", value: "1/60 l/min", aliases: ["L/h", "litre per hour", "litres per hour", "liter per hour", "liters per hour"]
16
+ end
17
+
18
+ system :imperial do
19
+ unit "ft³/s", value: "0.028316846592 m³/s", aliases: ["ft^3/s", "cubic foot per second", "cubic feet per second"]
20
+ unit "ft³/min", value: "1/60 ft³/s", aliases: ["ft^3/min", "cubic foot per minute", "cubic feet per minute"]
21
+ unit "ft³/h", value: "1/60 ft³/min", aliases: ["ft^3/h", "cubic foot per hour", "cubic feet per hour"]
22
+
23
+ unit "in³/s", value: "1.6387064e-5 m³/s", aliases: ["in^3/s", "cubic inch per second", "cubic inches per second"]
24
+ unit "in³/min", value: "1/60 in³/s", aliases: ["in^3/min", "cubic inch per minute", "cubic inches per minute"]
25
+ unit "in³/h", value: "1/60 in³/min", aliases: ["in^3/h", "cubic inch per hour", "cubic inches per hour"]
26
+
27
+ unit "yd³/s", value: "0.764554857984 m³/s", aliases: ["yd^3/s", "cubic yard per second", "cubic yards per second"]
28
+ unit "yd³/min", value: "1/60 yd³/s", aliases: ["yd^3/min", "cubic yard per minute", "cubic yards per minute"]
29
+ unit "yd³/h", value: "1/60 yd³/min", aliases: ["yd^3/h", "cubic yard per hour", "cubic yards per hour"]
30
+
31
+ unit "gal/s", value: "0.00454609 m³/s", aliases: ["gallon per second", "gallons per second"]
32
+ unit "gal/min", value: "1/60 gal/s", aliases: ["gallon per minute", "gallons per minute"]
33
+ unit "gal/h", value: "1/60 gal/min", aliases: ["gallon per hour", "gallons per hour"]
34
+ end
35
+ end
@@ -0,0 +1,55 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ UnitMeasurements::Weight = UnitMeasurements.build do
6
+ primitive "kg"
7
+
8
+ system :metric do
9
+ si_unit "g", aliases: ["gram", "grams", "gramme", "grammes"]
10
+
11
+ unit "q", value: "100 kg", aliases: ["quintal", "quintals"]
12
+ unit "t", value: "1000 kg", aliases: ["tonne", "tonnes", "metric tonne", "metric tonnes"]
13
+ unit "N", value: "0.10197162129779283 kg", aliases: ["newton", "newtons"]
14
+
15
+ unit "ct", value: "200 mg", aliases: ["carat", "carats"]
16
+ unit "Da", value: "1.660538921e-27 kg", aliases: ["dalton", "daltons"]
17
+ end
18
+
19
+ system :imperial do
20
+ unit "s", value: "20 gr", aliases: ["scruple", "scruples"]
21
+
22
+ unit "lb", value: "0.45359237 kg", aliases: ["lbs", "lbm", "pound-mass", "pound", "pounds", "#"]
23
+ unit "qr", value: "1/4 cwt", aliases: ["qtr", "quarter", "quarters"]
24
+ unit "st", value: "14 lb", aliases: ["stone", "stones"]
25
+ unit "oz", value: "1/16 lb", aliases: ["ounce", "ounces"]
26
+ unit "dr", value: "1/16 oz", aliases: ["dram", "drams"]
27
+ unit "gr", value: "1/7000 lb", aliases: ["grain", "grains"]
28
+ unit "LT", value: "2240 lb", aliases: ["imperial ton", "displacement ton", "imperial tons", "displacement tons", "long ton", "long tons", "weight ton", "weight tons"]
29
+
30
+ unit "drt", value: "60 gr", aliases: ["troy dram", "troy drams"]
31
+ unit "ozt", value: "480 gr", aliases: ["troy ounce", "troy ounces"]
32
+ unit "lbt", value: "5760 gr", aliases: ["troy pound", "troy pounds"]
33
+ unit "dwt", value: "1/20 ozt", aliases: ["pwt", "pennyweight", "pennyweights"]
34
+ unit "cwt", value: "112 lb", aliases: ["hundredweight", "long hundredweight", "imperial hundredweight"]
35
+ unit "fir", value: "56 lb", aliases: ["firkin", "firkins"]
36
+ end
37
+
38
+ system :us_customary do
39
+ unit "tn", value: "2000 lb", aliases: ["ton", "tons", "short ton", "short tons"]
40
+ unit "us qr", value: "1/4 cwt (US)", aliases: ["us qtr", "us quarter", "us quarters"]
41
+ unit "cwt (US)", value: "100 lb", aliases: ["hundredweight (US)", "short hundredweight"]
42
+ end
43
+
44
+ system :gravitational_metric do
45
+ unit "hyl", value: "9.80665 kg", aliases: ["mug", "metric slug", "metric slugs", "hyls"]
46
+ end
47
+
48
+ system :foot_pound_second do
49
+ unit "slug", value: "32.17404856 lb", aliases: ["slugs"]
50
+ end
51
+
52
+ system :planck_units do
53
+ unit "mₚ", value: "2.176434e-8 kg", aliases: ["planck mass", "quantum mass"]
54
+ end
55
+ end
@@ -0,0 +1,8 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ module UnitMeasurements
6
+ # Current stable version.
7
+ VERSION = "5.17.0"
8
+ end