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.
- checksums.yaml +7 -0
- data/.github/workflows/main.yml +31 -0
- data/.github/workflows/pages.yml +31 -0
- data/.gitignore +12 -0
- data/.rspec +3 -0
- data/.yardopts +2 -0
- data/CHANGELOG.md +645 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +56 -0
- data/LICENSE.md +21 -0
- data/README.md +511 -0
- data/Rakefile +10 -0
- data/lib/unit_measurements/arithmetic.rb +225 -0
- data/lib/unit_measurements/base.rb +177 -0
- data/lib/unit_measurements/cache.rb +173 -0
- data/lib/unit_measurements/comparison.rb +64 -0
- data/lib/unit_measurements/configuration.rb +64 -0
- data/lib/unit_measurements/conversion.rb +92 -0
- data/lib/unit_measurements/errors/blank_quantity_error.rb +21 -0
- data/lib/unit_measurements/errors/blank_unit_error.rb +21 -0
- data/lib/unit_measurements/errors/missing_primitive_unit_error.rb +24 -0
- data/lib/unit_measurements/errors/parse_error.rb +37 -0
- data/lib/unit_measurements/errors/primitive_unit_already_set_error.rb +22 -0
- data/lib/unit_measurements/errors/unit_already_defined_error.rb +37 -0
- data/lib/unit_measurements/errors/unit_error.rb +36 -0
- data/lib/unit_measurements/extras/conversion_methods.rb +87 -0
- data/lib/unit_measurements/extras/numeric_methods.rb +85 -0
- data/lib/unit_measurements/formatter.rb +58 -0
- data/lib/unit_measurements/math.rb +120 -0
- data/lib/unit_measurements/measurement.rb +539 -0
- data/lib/unit_measurements/normalizer.rb +155 -0
- data/lib/unit_measurements/parser.rb +220 -0
- data/lib/unit_measurements/unit.rb +243 -0
- data/lib/unit_measurements/unit_group.rb +297 -0
- data/lib/unit_measurements/unit_group_builder.rb +224 -0
- data/lib/unit_measurements/unit_groups/acceleration.rb +36 -0
- data/lib/unit_measurements/unit_groups/all.rb +56 -0
- data/lib/unit_measurements/unit_groups/amount_of_substance.rb +13 -0
- data/lib/unit_measurements/unit_groups/angular_acceleration.rb +14 -0
- data/lib/unit_measurements/unit_groups/angular_velocity.rb +25 -0
- data/lib/unit_measurements/unit_groups/area.rb +49 -0
- data/lib/unit_measurements/unit_groups/catalytic_activity.rb +13 -0
- data/lib/unit_measurements/unit_groups/density.rb +33 -0
- data/lib/unit_measurements/unit_groups/dynamic_viscosity.rb +22 -0
- data/lib/unit_measurements/unit_groups/electric_charge.rb +20 -0
- data/lib/unit_measurements/unit_groups/electric_conductance.rb +15 -0
- data/lib/unit_measurements/unit_groups/electric_current.rb +19 -0
- data/lib/unit_measurements/unit_groups/electric_dipole_moment.rb +13 -0
- data/lib/unit_measurements/unit_groups/electric_potential.rb +17 -0
- data/lib/unit_measurements/unit_groups/electric_quadrupole_moment.rb +14 -0
- data/lib/unit_measurements/unit_groups/electrical_capacitance.rb +15 -0
- data/lib/unit_measurements/unit_groups/electrical_elastance.rb +13 -0
- data/lib/unit_measurements/unit_groups/electrical_inductance.rb +15 -0
- data/lib/unit_measurements/unit_groups/electrical_resistance.rb +16 -0
- data/lib/unit_measurements/unit_groups/energy.rb +58 -0
- data/lib/unit_measurements/unit_groups/force.rb +47 -0
- data/lib/unit_measurements/unit_groups/frequency.rb +16 -0
- data/lib/unit_measurements/unit_groups/illuminance.rb +18 -0
- data/lib/unit_measurements/unit_groups/information_entropy.rb +15 -0
- data/lib/unit_measurements/unit_groups/kinetic_viscosity.rb +18 -0
- data/lib/unit_measurements/unit_groups/length.rb +67 -0
- data/lib/unit_measurements/unit_groups/luminance.rb +21 -0
- data/lib/unit_measurements/unit_groups/luminous_flux.rb +11 -0
- data/lib/unit_measurements/unit_groups/luminous_intensity.rb +13 -0
- data/lib/unit_measurements/unit_groups/magnetic_field.rb +13 -0
- data/lib/unit_measurements/unit_groups/magnetic_flux.rb +15 -0
- data/lib/unit_measurements/unit_groups/magnetic_induction.rb +13 -0
- data/lib/unit_measurements/unit_groups/magnetomotive_force.rb +13 -0
- data/lib/unit_measurements/unit_groups/mass_flow_rate.rb +49 -0
- data/lib/unit_measurements/unit_groups/plane_angle.rb +30 -0
- data/lib/unit_measurements/unit_groups/power.rb +54 -0
- data/lib/unit_measurements/unit_groups/pressure.rb +60 -0
- data/lib/unit_measurements/unit_groups/quantity.rb +14 -0
- data/lib/unit_measurements/unit_groups/radiation_absorbed_dose.rb +14 -0
- data/lib/unit_measurements/unit_groups/radiation_equivalent_dose.rb +13 -0
- data/lib/unit_measurements/unit_groups/radiation_exposure.rb +15 -0
- data/lib/unit_measurements/unit_groups/radioactivity.rb +14 -0
- data/lib/unit_measurements/unit_groups/solid_angle.rb +18 -0
- data/lib/unit_measurements/unit_groups/sound_level.rb +13 -0
- data/lib/unit_measurements/unit_groups/temperature.rb +19 -0
- data/lib/unit_measurements/unit_groups/time.rb +29 -0
- data/lib/unit_measurements/unit_groups/torque.rb +40 -0
- data/lib/unit_measurements/unit_groups/velocity.rb +37 -0
- data/lib/unit_measurements/unit_groups/volume.rb +67 -0
- data/lib/unit_measurements/unit_groups/volumetric_flow_rate.rb +35 -0
- data/lib/unit_measurements/unit_groups/weight.rb +55 -0
- data/lib/unit_measurements/version.rb +8 -0
- data/lib/unit_measurements.rb +7 -0
- data/unit_measurements.gemspec +43 -0
- data/units.md +843 -0
- metadata +216 -0
@@ -0,0 +1,49 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::Area = UnitMeasurements.build do
|
6
|
+
primitive "m²"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
unit "a", value: "100 m²", aliases: ["are", "ares"]
|
10
|
+
unit "b", value: "1e-28 m²", aliases: ["barn", "barns"]
|
11
|
+
unit "m²", aliases: ["m^2", "sq m", "square meter", "square meters", "square metre", "square metres"]
|
12
|
+
|
13
|
+
unit "ha", value: "10000 m²", aliases: ["hectare", "hectares"]
|
14
|
+
unit "km²", value: "1e+6 m²", aliases: ["km^2", "sq km", "square kilometer", "square kilometers", "square kilometre", "square kilometres"]
|
15
|
+
|
16
|
+
unit "dun", value: "10 a", aliases: ["ḍn", "dunam", "dunams"]
|
17
|
+
end
|
18
|
+
|
19
|
+
system :imperial do
|
20
|
+
unit "ac", value: "4046.8564224 m²", aliases: ["acre", "acres"]
|
21
|
+
|
22
|
+
unit "in²", value: "0.00064516 m²", aliases: ["in^2", "sq in", "square inch", "square inches"]
|
23
|
+
unit "ft²", value: "144 in²", aliases: ["ft^2", "sq ft", "square foot", "square feet"]
|
24
|
+
unit "yd²", value: "9 ft²", aliases: ["yd^2", "sq yd", "square yard", "square yards"]
|
25
|
+
unit "mi²", value: "3097600 yd²", aliases: ["mi^2", "sq mi", "square mile", "square miles"]
|
26
|
+
unit "ch²", value: "484 yd²", aliases: ["ch^2", "sq ch", "square chain", "square chains"]
|
27
|
+
unit "rd²", value: "272 1/4 ft²", aliases: ["rd^2", "sq rd", "square rod", "square rods"]
|
28
|
+
|
29
|
+
unit "fur²", value: "48400 yd²", aliases: ["fur^2", "sq fur", "square furlong", "square furlongs"]
|
30
|
+
unit "lnk²", value: "4.0468564224e-2 m²", aliases: ["link^2", "sq lnk", "square link", "square links"]
|
31
|
+
end
|
32
|
+
|
33
|
+
system :us_customary do
|
34
|
+
unit "sec", value: "640 ac", aliases: ["sect", "section", "sections"]
|
35
|
+
unit "twp", value: "36 sec", aliases: ["survey township", "survey townships"]
|
36
|
+
|
37
|
+
unit "ac (US)", value: "4046.873 m²", aliases: ["acre (US)", "acres (US)"]
|
38
|
+
unit "ft² (US)", value: "0.09290341161327482 m²", aliases: ["ft^2 (US)", "sq ft (US)", "square foot (US)", "square feet (US)"]
|
39
|
+
unit "mi² (US)", value: "2.58999847e+6 m²", aliases: ["mi^2 (US)", "sq mi (US)", "square mile (US)", "square miles (US)"]
|
40
|
+
unit "ch² (US)", value: "404.6873 m²", aliases: ["ch^2 (US)", "sq ch (US)", "square chain (US)", "square chains (US)"]
|
41
|
+
end
|
42
|
+
|
43
|
+
system :planck_units do
|
44
|
+
unit "Aₚ", value: "2.6121e-70 m²", aliases: ["planck area", "quantum area"]
|
45
|
+
end
|
46
|
+
|
47
|
+
unit "bd", value: "0.00774192 m²", aliases: ["board", "boards"]
|
48
|
+
unit "ro", value: "1/4 ac", aliases: ["rood"]
|
49
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::CatalyticActivity = UnitMeasurements.build do
|
6
|
+
primitive "kat"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "kat", aliases: ["katal", "katals"]
|
10
|
+
end
|
11
|
+
|
12
|
+
unit "U", value: "1/60 μkat", aliases: ["unit", "units", "enzUnit"]
|
13
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::Density = UnitMeasurements.build do
|
6
|
+
primitive "kg/m³"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
unit "g/m³", aliases: ["g/m^3", "gram per cubic meter", "grams per cubic meter", "gramme per cubic metre", "grammes per cubic metre"]
|
10
|
+
unit "g/l", value: "1 kg/m³", aliases: ["gram per liter", "grams per liter", "gramme per litre", "grammes per litre"]
|
11
|
+
unit "g/ml", value: "1000 g/l", aliases: ["gram per milliliter", "grams per milliliter", "gramme per millilitre", "grammes per millilitre"]
|
12
|
+
|
13
|
+
unit "kg/l", value: "1e+6 g/m³", aliases: ["kilogram per liter", "kilograms per liter", "kilogramme per litre", "kilogrammes per litre"]
|
14
|
+
unit "kg/m³", value: "1000 g/m³", aliases: ["kg/m^3", "kilogram per cubic meter", "kilograms per cubic meter", "kilogramme per cubic metre", "kilogrammes per cubic metre"]
|
15
|
+
end
|
16
|
+
|
17
|
+
system :imperial do
|
18
|
+
unit "oz/ft³", value: "1.001153961 kg/m³", aliases: ["oz/ft^3", "ounce per cubic foot", "ounces per cubic foot"]
|
19
|
+
unit "oz/in³", value: "1.729994044e+3 kg/m³", aliases: ["oz/in^3", "ounce per cubic inch", "ounces per cubic inch"]
|
20
|
+
unit "oz/gal", value: "6.236023291 kg/m³", aliases: ["ounce per gallon", "ounces per gallon"]
|
21
|
+
|
22
|
+
unit "lb/ft³", value: "16.01846337 kg/m³", aliases: ["lb/ft^3", "pound per cubic foot", "pounds per cubic foot"]
|
23
|
+
unit "lb/in³", value: "2.767990471e+4 kg/m³", aliases: ["lb/in^3", "pound per cubic inch", "pounds per cubic inch"]
|
24
|
+
unit "lb/gal", value: "99.77637266 kg/m³", aliases: ["pound per gallon", "pounds per gallon"]
|
25
|
+
|
26
|
+
unit "slug/ft³", value: "515.3788184 kg/m³", aliases: ["slug/ft^3", "slug per cubic foot", "slugs per cubic foot"]
|
27
|
+
unit "slug/in³", value: "890574.582782 kg/m³", aliases: ["slug/in^3", "slug per cubic inch", "slugs per cubic inch"]
|
28
|
+
end
|
29
|
+
|
30
|
+
system :planck_units do
|
31
|
+
unit "ρₚ", value: "5.1550e+96 kg/m³", aliases: ["planck density", "quantum density"]
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::DynamicViscosity = UnitMeasurements.build do
|
6
|
+
primitive "Pa⋅s"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "Pa⋅s", aliases: ["Pa*s", "pascal second"]
|
10
|
+
|
11
|
+
unit "P", value: "1 dPa⋅s", aliases: ["dyne·s/cm²", "dyne*s/cm^2", "poise"]
|
12
|
+
unit "Pl", value: "10 P", aliases: ["poiseuille"]
|
13
|
+
end
|
14
|
+
|
15
|
+
system :foot_pound_second do
|
16
|
+
unit "lb/(ft⋅s)", value: "1.488164 Pa⋅s", aliases: ["lb/(ft*s)", "pound per foot second", "pounds per foot second"]
|
17
|
+
unit "lb/(ft⋅h)", value: "0.0004133789 Pa⋅s", aliases: ["lb/(ft*h)", "pound per foot hour", "pounds per foot hour"]
|
18
|
+
|
19
|
+
unit "(lbf⋅s)/ft²", value: "47.88026 Pa⋅s", aliases: ["(lb⋅s)/ft²", "(lbf*s)/ft^2", "(lb*s)/ft^2", "pound-force second per square foot"]
|
20
|
+
unit "(lbf⋅s)/in²", value: "6894.757 Pa⋅s", aliases: ["(lb⋅s)/in²", "(lbf*s)/in^2", "(lb*s)/in^2", "pound-force second per square inch"]
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::ElectricCharge = UnitMeasurements.build do
|
6
|
+
primitive "C"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "C", aliases: ["coulomb", "coulombs"]
|
10
|
+
|
11
|
+
unit "Fr", value: "3.335641e-10 C", aliases: ["franklin", "franklins"]
|
12
|
+
unit "Fd", value: "96485.3377164 C", aliases: ["faraday", "faradays"]
|
13
|
+
unit "abC", value: "10 C", aliases: ["abcoulomb", "abcoulombs"]
|
14
|
+
unit "statC", value: "3.335641e-10 C", aliases: ["statcoulomb", "statcoulombs"]
|
15
|
+
end
|
16
|
+
|
17
|
+
system :planck_units do
|
18
|
+
unit "qₚ", value: "1.875545956e-18 C", aliases: ["planck length", "quantum length"]
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::ElectricConductance = UnitMeasurements.build do
|
6
|
+
primitive "S"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "S", aliases: ["℧", "Ω⁻¹", "siemens", "mho", "mhos"]
|
10
|
+
|
11
|
+
unit "A/V", value: "1 S", aliases: ["amp/volt", "amps/volt", "ampere/volt", "amperes/volt", "ampere per volt", "amperes per volt"]
|
12
|
+
unit "abS", value: "1e+9 S", aliases: ["ab℧", "absiemens", "abmho", "abmhos"]
|
13
|
+
unit "statS", value: "1.112347e-12 S", aliases: ["stat℧", "statsiemens", "statmho", "statmhos"]
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::ElectricCurrent = UnitMeasurements.build do
|
6
|
+
primitive "A"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "A", aliases: ["amp", "ampere", "amperes"]
|
10
|
+
|
11
|
+
unit "Bi", value: "10 A", aliases: ["biot", "biots"]
|
12
|
+
unit "abA", value: "10 A", aliases: ["abampere", "abamperes"]
|
13
|
+
unit "statA", value: "3.33564e-10 A", aliases: ["statampere", "statamperes"]
|
14
|
+
end
|
15
|
+
|
16
|
+
system :planck_units do
|
17
|
+
unit "Iₚ", value: "3.4789e+25 A", aliases: ["planck current", "quantum current"]
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::ElectricDipoleMoment = UnitMeasurements.build do
|
6
|
+
primitive "C⋅m"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "C⋅m", aliases: ["C*m", "coulomb-meter", "coulomb-metre"]
|
10
|
+
|
11
|
+
unit "D", value: "3.33564095e-30 C⋅m", aliases: ["debye", "debyes"]
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::ElectricPotential = UnitMeasurements.build do
|
6
|
+
primitive "V"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "V", aliases: ["volt", "volts"]
|
10
|
+
|
11
|
+
unit "W/A", value: "1 V", aliases: ["watt per ampere", "watts per ampere"]
|
12
|
+
unit "J/C", value: "1 V", aliases: ["joule per coulomb", "joules per coulomb"]
|
13
|
+
|
14
|
+
unit "abV", value: "1e-8 V", aliases: ["abvolt", "abvolts"]
|
15
|
+
unit "statV", value: "299.792458 V", aliases: ["statvolt", "statvolts"]
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::ElectricQuadrupoleMoment = UnitMeasurements.build do
|
6
|
+
primitive "C·m²"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "C·m²", aliases: ["C*m^2", "coulomb square meter", "coulomb square metre"]
|
10
|
+
|
11
|
+
unit "B", value: "1e-26 statC·cm²", aliases: ["buckingham", "buckinghams"]
|
12
|
+
unit "statC·cm²", value: "3.335641e-14 C·m²", aliases: ["statC*m^2", "statcoulomb square meter", "statcoulomb square metre"]
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::ElectricalCapacitance = UnitMeasurements.build do
|
6
|
+
primitive "F"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "F", aliases: ["farad", "farads"]
|
10
|
+
|
11
|
+
unit "C/V", value: "1 F", aliases: ["coulomb/volt", "coulombs/volt", "coulomb per volt", "coulombs per volt"]
|
12
|
+
unit "abF", value: "1e+9 F", aliases: ["abfarad", "abfarads"]
|
13
|
+
unit "statF", value: "1.1127e-12 F", aliases: ["statfarad", "statfarads"]
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::ElectricalElastance = UnitMeasurements.build do
|
6
|
+
primitive "D"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "D", aliases: ["F⁻¹", "daraf", "darafs", "reciprocal farad", "reciprocal farads"]
|
10
|
+
|
11
|
+
unit "V/C", value: "1 D", aliases: ["volt/coulomb", "volts/coulomb", "volt per coulomb", "volts per coulomb"]
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::ElectricalInductance = UnitMeasurements.build do
|
6
|
+
primitive "H"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "H", aliases: ["henry", "henries"]
|
10
|
+
|
11
|
+
unit "abH", value: "1e-9 H", aliases: ["abhenry", "abhenries"]
|
12
|
+
unit "Wb/A", value: "1 H", aliases: ["weber per ampere", "webers per ampere"]
|
13
|
+
unit "statH", value: "8.98755178736818e+11 H", aliases: ["stathenry", "stathenries"]
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::ElectricalResistance = UnitMeasurements.build do
|
6
|
+
primitive "Ω"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "Ω", aliases: ["ω", "ohm", "ohms", "reciprocal siemens"]
|
10
|
+
|
11
|
+
unit "S", value: "1 Ω", aliases: ["siemens", "mho", "mhos"]
|
12
|
+
unit "abΩ", value: "1e-9 Ω", aliases: ["abω", "abohm", "abohms"]
|
13
|
+
unit "statΩ", value: "8.98755178737e+11 Ω", aliases: ["statω", "statohm", "statohms"]
|
14
|
+
unit "V/A", value: "1 Ω", aliases: ["volt/amp", "volts/amp", "volt/ampere", "volts/ampere", "volt per ampere", "volts per ampere"]
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::Energy = UnitMeasurements.build do
|
6
|
+
primitive "J"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "J", aliases: ["joule", "joules"]
|
10
|
+
si_unit "cal", value: "4.1868 J", aliases: ["calorie", "calories"]
|
11
|
+
|
12
|
+
unit "eV", value: "1.602176634e-19 J", aliases: ["electronvolt", "electron volt", "electron-volt"]
|
13
|
+
unit "erg", value: "1e-7 J", aliases: ["ergs"]
|
14
|
+
|
15
|
+
unit "W⋅s", value: "1 J", aliases: ["W*s", "watt-second"]
|
16
|
+
unit "W⋅h", value: "3600 J", aliases: ["W*h", "watt-hour"]
|
17
|
+
unit "kW⋅h", value: "3.6e+6 J", aliases: ["kW*h", "kilowatt-hour"]
|
18
|
+
end
|
19
|
+
|
20
|
+
system :us_customary do
|
21
|
+
si_unit "BTU", value: "1055.05585262 J", aliases: ["Btu", "british thermal unit", "british thermal units"]
|
22
|
+
|
23
|
+
unit "thm", value: "100 kBTU", aliases: ["therm", "therms"]
|
24
|
+
unit "quad", value: "1.05505585262e+18 J", aliases: ["quads"]
|
25
|
+
|
26
|
+
unit "ft⋅lbf", value: "1.3558179483314004 J", aliases: ["ft*lbf", "ft⋅lb", "ft*lb", "foot-pound force"]
|
27
|
+
unit "in⋅lbf", value: "0.1129848290276167 J", aliases: ["in*lbf", "in⋅lb", "in*lb", "inch-pound force"]
|
28
|
+
end
|
29
|
+
|
30
|
+
system :foot_pound_second do
|
31
|
+
unit "ft⋅pdl", value: "4.21401100938048e-2 J", aliases: ["ft*pdl", "foot-poundal"]
|
32
|
+
end
|
33
|
+
|
34
|
+
system :metre_tonne_second do
|
35
|
+
unit "th", value: "4.1868e+6 J", aliases: ["thermie", "thermies"]
|
36
|
+
end
|
37
|
+
|
38
|
+
system :gravitational_metric do
|
39
|
+
unit "kp⋅m", value: "9.80665 J", aliases: ["kpm", "kp*m", "kilopond-metre", "kilopond-meter"]
|
40
|
+
end
|
41
|
+
|
42
|
+
system :imperial do
|
43
|
+
unit "hp⋅h", value: "2.685e+13 erg", aliases: ["hp*h", "horsepower-hour"]
|
44
|
+
end
|
45
|
+
|
46
|
+
system :planck_units do
|
47
|
+
unit "Eₚ", value: "1.9561e+9 J", aliases: ["planck energy", "quantum energy"]
|
48
|
+
end
|
49
|
+
|
50
|
+
unit "Ry", value: "2.179872e-18 J", aliases: ["rydberg"]
|
51
|
+
unit "Ha", value: "4.359744e-18 J", aliases: ["hartree", "atomic unit of energy"]
|
52
|
+
unit "boe", value: "5.86152 GJ", aliases: ["barrel of oil equivalent", "barrels of oil equivalent"]
|
53
|
+
unit "tce", value: "29.3076 GJ", aliases: ["TCE", "tonne of coal equivalent", "tonnes of coal equivalent"]
|
54
|
+
unit "toe", value: "41.868 GJ", aliases: ["tonne of oil equivalent", "tonnes of oil equivalent"]
|
55
|
+
unit "foe", value: "1e+51 erg", aliases: ["bethe"]
|
56
|
+
unit "l⋅atm", value: "101.325 J", aliases: ["l*atm", "litre-atmosphere", "liter-atmosphere"]
|
57
|
+
unit "gal⋅atm", value: "460.63256925 J", aliases: ["gal*atm", "gallon-atmosphere"]
|
58
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::Force = UnitMeasurements.build do
|
6
|
+
primitive "N"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "N", aliases: ["newton", "newtons"]
|
10
|
+
|
11
|
+
unit "p", value: "0.00980665 N", aliases: ["pond", "ponds"]
|
12
|
+
unit "gf", value: "0.00980665 N", aliases: ["gram-force", "gramme-force"]
|
13
|
+
unit "kgf", value: "9.80665 N", aliases: ["kp", "gvf", "kilogram-force", "kilogramme-force"]
|
14
|
+
unit "dyn", value: "1e-5 N", aliases: ["dyne", "dynes"]
|
15
|
+
unit "mgvf", value: "9.80665 mN", aliases: ["gvtf", "gravet-force", "milligrave-force"]
|
16
|
+
end
|
17
|
+
|
18
|
+
system :metre_tonne_second do
|
19
|
+
unit "sn", value: "1e+3 N", aliases: ["sthene", "sthenes", "sthène"]
|
20
|
+
unit "tf", value: "8896.443230521 N", aliases: ["metric ton-force", "tonne-force"]
|
21
|
+
end
|
22
|
+
|
23
|
+
system :english_engineering do
|
24
|
+
unit "lbf", value: "4.4482216152605 N", aliases: ["pound-force"]
|
25
|
+
end
|
26
|
+
|
27
|
+
system :foot_pound_second do
|
28
|
+
unit "pdl", value: "0.138254954376 N", aliases: ["poundal", "poundals"]
|
29
|
+
unit "ozf", value: "0.27801385095378125 N", aliases: ["ounce-force"]
|
30
|
+
end
|
31
|
+
|
32
|
+
system :us_customary do
|
33
|
+
unit "tnf", value: "2000 lbf", aliases: ["ton-force", "short ton-force"]
|
34
|
+
unit "kipf", value: "4.4482216152605e+3 N", aliases: ["kip", "klbf", "kip-force"]
|
35
|
+
end
|
36
|
+
|
37
|
+
system :imperial do
|
38
|
+
unit "LTf", value: "2240 lbf", aliases: ["long ton-force"]
|
39
|
+
unit "(lb⋅m)/s²", value: "0.45359237 N", aliases: ["(lb*m)/s^2", "pound meter per second squared", "pound metre per second squared"]
|
40
|
+
unit "(lb⋅ft)/s²", value: "0.138254954376 N", aliases: ["(lb*ft)/s^2", "pound foot per second squared"]
|
41
|
+
unit "(lb⋅in)/s²", value: "0.011521246198 N", aliases: ["(lb*in)/s^2", "pound inch per second squared"]
|
42
|
+
end
|
43
|
+
|
44
|
+
system :planck_units do
|
45
|
+
unit "Fₚ", value: "1.2103e+44 N", aliases: ["planck force", "quantum force"]
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::Frequency = UnitMeasurements.build do
|
6
|
+
primitive "Hz"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "Hz", aliases: ["hertz"]
|
10
|
+
|
11
|
+
unit "deg/s", value: [Rational(1, 360), "Hz"], aliases: ["°/s", "degree per second", "degrees per second"]
|
12
|
+
unit "rad/s", value: [Rational(1, (2 * Math::PI)), "Hz"], aliases: ["radian per second", "radians per second"]
|
13
|
+
end
|
14
|
+
|
15
|
+
unit "rev/s", value: [1, "Hz"], aliases: ["rps", "revolution per second", "revolutions per second"]
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::Illuminance = UnitMeasurements.build do
|
6
|
+
primitive "lx"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "lx", aliases: ["lux", "lm/m²", "lm/m^2", "lumen per square metre", "lumen per square meter"]
|
10
|
+
unit "ph", value: "10000 lx", aliases: ["phot", "phots", "lm/cm²", "lm/cm^2", "lumen per square centimetre", "lumen per square centimeter"]
|
11
|
+
end
|
12
|
+
|
13
|
+
system :us_customary do
|
14
|
+
unit "fc", value: "10.763910417 lx", aliases: ["footcandle", "lm/ft²", "lm/ft^2", "lumen per square foot"]
|
15
|
+
end
|
16
|
+
|
17
|
+
unit "nx", value: "1 mlx", aliases: ["nox"]
|
18
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::InformationEntropy = UnitMeasurements.build do
|
6
|
+
primitive "nat"
|
7
|
+
|
8
|
+
si_unit "b", value: "1 Sh", aliases: ["bit", "bits"], add_binary_prefixes: true
|
9
|
+
si_unit "B", value: [2.pow(3), "b"], aliases: ["byte", "bytes"], add_binary_prefixes: true
|
10
|
+
|
11
|
+
unit "Sh", value: [Math.log(2), "nat"], aliases: ["shannon", "shannons"]
|
12
|
+
unit "nat", aliases: ["nit", "nepit", "natural unit of information"]
|
13
|
+
unit "nybl", value: [2.pow(2), "b"], aliases: ["nibble", "nibbles", "nybble", "nyble"]
|
14
|
+
unit "Hart", value: [Math.log(10), "nat"], aliases: ["hartley", "ban", "dit"]
|
15
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::KineticViscosity = UnitMeasurements.build do
|
6
|
+
primitive "m²/s"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
unit "m²/s", aliases: ["m^2/s", "square metre per second", "square meter per second", "square metres per second", "square meters per second"]
|
10
|
+
|
11
|
+
unit "St", value: "1e-4 m²/s", aliases: ["stoke", "strokes"]
|
12
|
+
end
|
13
|
+
|
14
|
+
system :foot_pound_second do
|
15
|
+
unit "ft²/s", value: "0.09290304 m²/s", aliases: ["ft^2/s", "square foot per second", "square feet per second"]
|
16
|
+
unit "in²/s", value: "0.006944444444444443 ft²/s", aliases: ["in^2/s", "square inch per second", "square inches per second"]
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::Length = UnitMeasurements.build do
|
6
|
+
primitive "m"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "m", aliases: ["meter", "metre", "meters", "metres"]
|
10
|
+
|
11
|
+
unit "Å", value: "1e-10 m", aliases: ["angstrom", "angstroms", "ångström"]
|
12
|
+
unit "μ", value: "1 μm", aliases: ["micron", "microns"]
|
13
|
+
|
14
|
+
unit "cb (M)", value: "185.2 m", aliases: ["CBL. (M)", "cable length (M)"]
|
15
|
+
end
|
16
|
+
|
17
|
+
system :imperial do
|
18
|
+
unit "h", value: "4 in", aliases: ["hh", "hand", "hands"]
|
19
|
+
|
20
|
+
unit "in", value: "25.4 mm", aliases: ['"', "inch", "inches"]
|
21
|
+
unit "ft", value: "12 in", aliases: ["'", "foot", "feet"]
|
22
|
+
unit "yd", value: "3 ft", aliases: ["yard", "yards"]
|
23
|
+
unit "mi", value: "5280 ft", aliases: ["mile", "miles", "statute mile", "international mile", "statute miles", "international miles"]
|
24
|
+
unit "ch", value: "22 yd", aliases: ["chain", "chains"]
|
25
|
+
unit "th", value: "1/1000 in", aliases: ["thou", "thousandth of an inch", "mil", "mils"]
|
26
|
+
unit "nl", value: "3 nmi", aliases: ["NL", "nleague", "nleagues", "nautical league", "nautical leagues"]
|
27
|
+
unit "rd", value: "16 1/2 ft", aliases: ["rod", "rods", "perch", "pole", "lug"]
|
28
|
+
unit "cb", value: "608 ft", aliases: ["CBL.", "cable length"]
|
29
|
+
unit "qr", value: "1/4 yd", aliases: ["quarter", "quarters"]
|
30
|
+
unit "bc", value: "1/3 in", aliases: ["b.c.", "barleycorn", "barleycorns"]
|
31
|
+
|
32
|
+
unit "ftm", value: "6 ft", aliases: ["fathom", "fathoms"]
|
33
|
+
unit "fur", value: "220 yd", aliases: ["furlong", "furlongs"]
|
34
|
+
unit "nmi", value: "1852 m", aliases: ["NMI", "M", "NM", "nautical mile", "nautical miles"]
|
35
|
+
unit "lnk", value: "33/50 ft", aliases: ["l", "li", "link", "links"]
|
36
|
+
unit "lea", value: "3 mi", aliases: ["league", "leagues"]
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
system :us_customary do
|
41
|
+
unit "U", value: "1.75 in", aliases: ["RU", "rack unit", "rack units"]
|
42
|
+
unit "sft", value: "1200/3937 m", aliases: ["sfoot", "sfeet", "survey-foot", "survey-feet"]
|
43
|
+
|
44
|
+
unit "cb (US)", value: "720 ft", aliases: ["CBL. (US)", "cable length (US)"]
|
45
|
+
end
|
46
|
+
|
47
|
+
system :astronomical do
|
48
|
+
unit "S", value: "1e+9 km", aliases: ["spat", "spats"]
|
49
|
+
|
50
|
+
unit "au", value: "149597870700 m", aliases: ["astronomical unit", "astronomical units"]
|
51
|
+
unit "pc", value: [Rational(648000, Math::PI), "au"], aliases: ["parsec", "parsecs"]
|
52
|
+
|
53
|
+
unit "ls", value: "299792458 m", aliases: ["light-second", "light-seconds"]
|
54
|
+
unit "lmin", value: "60 ls", aliases: ["light-minute", "light-minutes"]
|
55
|
+
unit "lh", value: "60 lmin", aliases: ["light-hour", "light-hours"]
|
56
|
+
unit "ld", value: "24 lh", aliases: ["light-day", "light-days"]
|
57
|
+
unit "lw", value: "7 ld", aliases: ["light-week", "light-weeks"]
|
58
|
+
unit "lm", value: "30 ld", aliases: ["light-month", "light-months"]
|
59
|
+
unit "ly", value: "365.25 ld", aliases: ["light-year", "light-years"]
|
60
|
+
end
|
61
|
+
|
62
|
+
system :planck_units do
|
63
|
+
unit "lₚ", value: "1.616255e-35 m", aliases: ["planck length", "quantum length"]
|
64
|
+
end
|
65
|
+
|
66
|
+
unit "z", value: "1.302773e+26 m", aliases: ["red-shift", "redshift", "redshifts"]
|
67
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::Luminance = UnitMeasurements.build do
|
6
|
+
primitive "cd/m²"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
unit "cd/m²", aliases: ["cd/m^2", "candela per square metre", "candelas per square metre", "candela per square meter", "candelas per square meter"]
|
10
|
+
|
11
|
+
unit "L", value: [Rational(10000, Math::PI), "cd/m²"], aliases: ["lambert", "lamberts"]
|
12
|
+
unit "sb", value: "10000 cd/m²", aliases: ["stlib"]
|
13
|
+
end
|
14
|
+
|
15
|
+
system :us_customary do
|
16
|
+
unit "fL", value: [Rational(1, Math::PI), "cd/ft²"], aliases: ["ft-L", "foot lambert", "foot-lambert"]
|
17
|
+
|
18
|
+
unit "cd/in²", value: "1550.0031 cd/m²", aliases: ["cd/in^2", "candela per square inch", "candelas per square inch"]
|
19
|
+
unit "cd/ft²", value: "10.763910417 cd/m²", aliases: ["cd/ft^2", "candela per square foot", "candelas per square foot"]
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::LuminousIntensity = UnitMeasurements.build do
|
6
|
+
primitive "cd"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "cd", aliases: ["candela", "candelas"]
|
10
|
+
end
|
11
|
+
|
12
|
+
unit "hk", value: "0.92 cd", aliases: ["hefnerkerze"]
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::MagneticField = UnitMeasurements.build do
|
6
|
+
primitive "Oe"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "Oe", aliases: ["oersted", "oersteds"]
|
10
|
+
|
11
|
+
unit "A/m", value: [(Math::PI / 250), "Oe"], aliases: ["ampere/meter", "ampere/metre", "amperes/meter", "amperes/metre", "ampere per meter", "ampere per metre", "amperes per meter", "amperes per metre"]
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::MagneticFlux = UnitMeasurements.build do
|
6
|
+
primitive "Wb"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "Wb", aliases: ["weber", "webers"]
|
10
|
+
|
11
|
+
unit "Mx", value: "1e-8 Wb", aliases: ["maxwell", "maxwells"]
|
12
|
+
unit "T·m²", value: "1 Wb", aliases: ["T*m^2", "tesla-square meter", "tesla-square metre"]
|
13
|
+
unit "G·cm²", value: "1e-8 Wb", aliases: ["G*cm^2", "gauss-square centimeter", "gauss-square centimetre"]
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# -*- frozen_string_literal: true -*-
|
3
|
+
# -*- warn_indent: true -*-
|
4
|
+
|
5
|
+
UnitMeasurements::MagneticInduction = UnitMeasurements.build do
|
6
|
+
primitive "T"
|
7
|
+
|
8
|
+
system :metric do
|
9
|
+
si_unit "T", aliases: ["tesla", "teslas"]
|
10
|
+
|
11
|
+
unit "G", value: "1e-4 T", aliases: ["Gs", "gauss"]
|
12
|
+
end
|
13
|
+
end
|