unit_measurements 3.8.0 → 4.0.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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -2
  3. data/Gemfile.lock +1 -1
  4. data/README.md +68 -80
  5. data/lib/unit_measurements/arithmetic.rb +4 -4
  6. data/lib/unit_measurements/base.rb +2 -3
  7. data/lib/unit_measurements/comparison.rb +2 -1
  8. data/lib/unit_measurements/conversion.rb +5 -5
  9. data/lib/unit_measurements/errors/primitive_unit_already_set_error.rb +11 -0
  10. data/lib/unit_measurements/formatter.rb +2 -2
  11. data/lib/unit_measurements/math.rb +5 -5
  12. data/lib/unit_measurements/measurement.rb +5 -11
  13. data/lib/unit_measurements/normalizer.rb +21 -28
  14. data/lib/unit_measurements/unit.rb +8 -5
  15. data/lib/unit_measurements/unit_group.rb +41 -7
  16. data/lib/unit_measurements/unit_group_builder.rb +10 -27
  17. data/lib/unit_measurements/unit_groups/acceleration.rb +8 -6
  18. data/lib/unit_measurements/unit_groups/all.rb +6 -6
  19. data/lib/unit_measurements/unit_groups/amount_of_substance.rb +4 -4
  20. data/lib/unit_measurements/unit_groups/angular_acceleration.rb +5 -5
  21. data/lib/unit_measurements/unit_groups/angular_velocity.rb +14 -14
  22. data/lib/unit_measurements/unit_groups/area.rb +8 -10
  23. data/lib/unit_measurements/unit_groups/density.rb +7 -8
  24. data/lib/unit_measurements/unit_groups/electric_charge.rb +7 -9
  25. data/lib/unit_measurements/unit_groups/electric_conductance.rb +18 -0
  26. data/lib/unit_measurements/unit_groups/electric_current.rb +6 -8
  27. data/lib/unit_measurements/unit_groups/electric_potential.rb +19 -0
  28. data/lib/unit_measurements/unit_groups/electrical_capacitance.rb +18 -0
  29. data/lib/unit_measurements/unit_groups/electrical_elastance.rb +13 -0
  30. data/lib/unit_measurements/unit_groups/electrical_inductance.rb +18 -0
  31. data/lib/unit_measurements/unit_groups/electrical_resistance.rb +19 -0
  32. data/lib/unit_measurements/unit_groups/force.rb +9 -11
  33. data/lib/unit_measurements/unit_groups/length.rb +7 -9
  34. data/lib/unit_measurements/unit_groups/luminous_intensity.rb +4 -4
  35. data/lib/unit_measurements/unit_groups/magnetic_field.rb +4 -4
  36. data/lib/unit_measurements/unit_groups/magnetic_flux.rb +6 -7
  37. data/lib/unit_measurements/unit_groups/magnetic_induction.rb +4 -6
  38. data/lib/unit_measurements/unit_groups/plane_angle.rb +11 -10
  39. data/lib/unit_measurements/unit_groups/quantity.rb +7 -5
  40. data/lib/unit_measurements/unit_groups/solid_angle.rb +7 -7
  41. data/lib/unit_measurements/unit_groups/sound_level.rb +4 -4
  42. data/lib/unit_measurements/unit_groups/temperature.rb +4 -4
  43. data/lib/unit_measurements/unit_groups/time.rb +13 -12
  44. data/lib/unit_measurements/unit_groups/velocity.rb +12 -16
  45. data/lib/unit_measurements/unit_groups/volume.rb +12 -14
  46. data/lib/unit_measurements/unit_groups/weight.rb +5 -5
  47. data/lib/unit_measurements/version.rb +1 -1
  48. data/units.md +72 -72
  49. metadata +9 -10
  50. data/lib/unit_measurements/unit_groups/capacitance.rb +0 -19
  51. data/lib/unit_measurements/unit_groups/conductance.rb +0 -19
  52. data/lib/unit_measurements/unit_groups/elastance.rb +0 -12
  53. data/lib/unit_measurements/unit_groups/inductance.rb +0 -19
  54. data/lib/unit_measurements/unit_groups/resistance.rb +0 -20
  55. data/lib/unit_measurements/unit_groups/voltage.rb +0 -21
  56. data/lib/unit_measurements/unit_methods.rb +0 -45
  57. data/lib/unit_measurements/unit_system.rb +0 -29
data/units.md CHANGED
@@ -5,8 +5,7 @@ bundled units before converting your measurements.
5
5
 
6
6
  **Notes:**
7
7
  1. Unit names suffixed with `*` support all [SI prefixes](README.md#si-units-support).
8
-
9
- Below are the units which are bundled in the unit_measurements.
8
+ 2. Primitive unit of the unit group is in _emphasis typeface_.
10
9
 
11
10
  ## 1. Length/Distance
12
11
 
@@ -14,7 +13,7 @@ These units are defined in `UnitMeasurements::Length`.
14
13
 
15
14
  | # | Name | Aliases |
16
15
  |:--|:--|:--|
17
- | 1 | m* | meter, metre, meters, metres |
16
+ | _1_ | _m*_ | _meter, metre, meters, metres_ |
18
17
  | 2 | in | ", inch, inches |
19
18
  | 3 | ft | ', foot, feet |
20
19
  | 4 | yd | yard, yards |
@@ -26,7 +25,7 @@ These units are defined in `UnitMeasurements::Weight`.
26
25
 
27
26
  | # | Name | Aliases |
28
27
  |--|--|--|
29
- | 1 | g* | gram, grams, gramme, grammes |
28
+ | _1_ | _g*_ | _gram, grams, gramme, grammes_ |
30
29
  | 2 | q | quintal, quintals |
31
30
  | 3 | t | tonne, tonnes, metric tonne, metric tonnes |
32
31
 
@@ -36,13 +35,13 @@ These units are defined in `UnitMeasurements::Time`.
36
35
 
37
36
  | # | Name | Aliases |
38
37
  |:--|:--|:--|
39
- | 1 | s* | sec, second, seconds |
38
+ | _1_ | _s*_ | _sec, second, seconds_ |
40
39
  | 2 | h | hr, hour, hours |
41
40
  | 3 | d | day, days |
42
41
  | 4 | wk | week, weeks |
43
- | 5 | fn | 4tnite, fortnight, fortnights |
44
- | 6 | mo | month, months |
45
- | 7 | yr | y, year, years |
42
+ | 5 | mo | month, months |
43
+ | 6 | yr | y, year, years |
44
+ | 7 | ftn | 4tnite, fortnight, fortnights |
46
45
  | 8 | min | minute, minutes |
47
46
  | 9 | qtr | quarter, quarters |
48
47
  | 10 | dec | decade, decades |
@@ -54,7 +53,7 @@ These units are defined in `UnitMeasurements::AmountOfSubstance`.
54
53
 
55
54
  | # | Name | Aliases |
56
55
  |:--|:--|:--|
57
- | 1 | mol* | mole, moles |
56
+ | _1_ | _mol*_ | _mole, moles_ |
58
57
  | 2 | NA | avogadro constant |
59
58
 
60
59
  ## 5. Electric current
@@ -63,7 +62,7 @@ These units are defined in `UnitMeasurements::ElectricCurrent`.
63
62
 
64
63
  | # | Name | Aliases |
65
64
  |:--|:--|:--|
66
- | 1 | A* | amp, ampere, amperes |
65
+ | _1_ | _A*_ | _amp, ampere, amperes_ |
67
66
  | 2 | abA | abampere, abamperes |
68
67
  | 3 | Bi | biot, biots |
69
68
  | 4 | statA | statampere, statamperes |
@@ -74,7 +73,7 @@ These units are defined in `UnitMeasurements::LuminousIntensity`.
74
73
 
75
74
  | # | Name | Aliases |
76
75
  |:--|:--|:--|
77
- | 1 | cd* | candela, candelas |
76
+ | _1_ | _cd*_ | _candela, candelas_ |
78
77
  | 2 | hk | hefnerkerze |
79
78
 
80
79
  ## 7. Temperature
@@ -83,7 +82,7 @@ These units are defined in `UnitMeasurements::Temperature`.
83
82
 
84
83
  | # | Name | Aliases |
85
84
  |:--|:--|:--|
86
- | 1 | K* | kelvin, kelvins |
85
+ | _1_ | _K*_ | _kelvin, kelvins_ |
87
86
  | 2 | °R | R, °Ra, Ra, rankine |
88
87
 
89
88
  ## 8. Area
@@ -92,7 +91,7 @@ These units are defined in `UnitMeasurements::Area`.
92
91
 
93
92
  | # | Name | Aliases |
94
93
  |:--|:--|:--|
95
- | 1 | m² | m^2, sq m, square meter, square meters, square metre, square metres |
94
+ | _1_ | _m²_ | _m^2, sq m, square meter, square meters, square metre, square metres_ |
96
95
  | 2 | km² | km^2, sq km, square kilometer, square kilometers, square kilometre, square kilometres |
97
96
  | 3 | in² | in^2, sq in, square inch, square inches |
98
97
  | 4 | ft² | ft^2, sq ft, square foot, square feet |
@@ -106,7 +105,7 @@ These units are defined in `UnitMeasurements::Volume`.
106
105
  | # | Name | Aliases |
107
106
  |:--|:--|:--|
108
107
  | 1 | l* | liter, litre, liters, litres |
109
- | 2 | m³ | m^3, cu m, cubic meter, cubic meters, cubic metre, cubic metres |
108
+ | _2_ | _m³_ | _m^3, cu m, cubic meter, cubic meters, cubic metre, cubic metres_ |
110
109
  | 3 | mm³ | mm^3, cu mm, cubic millimeter, cubic millimeters, cubic millimetre, cubic millimetres |
111
110
  | 4 | cm³ | cm^3, cu cm, cubic centimeter, cubic centimeters, cubic centimetre, cubic centimetres |
112
111
  | 5 | dm³ | dm^3, cu dm, cubic decimeter, cubic decimeters, cubic decimetre, cubic decimetres |
@@ -123,7 +122,7 @@ These units are defined in `UnitMeasurements::Density`.
123
122
  | # | Name | Aliases |
124
123
  |:--|:--|:--|
125
124
  | 1 | g/m³ | g/m^3, g·m⁻³, gram per cubic meter, grams per cubic meter, gramme per cubic metre, grammes per cubic metre |
126
- | 2 | kg/m³ | kg/m^3, kg·m⁻³, kilogram per cubic meter, kilograms per cubic meter, kilogramme per cubic metre, kilogrammes per cubic metre |
125
+ | _2_ | _kg/m³_ | _kg/m^3, kg·m⁻³, kilogram per cubic meter, kilograms per cubic meter, kilogramme per cubic metre, kilogrammes per cubic metre_ |
127
126
  | 3 | g/l | g·l⁻¹, gram per liter, grams per liter, gramme per litre, grammes per litre |
128
127
  | 4 | g/ml | g·ml⁻¹, gram per milliliter, grams per milliliter, gramme per millilitre, grammes per millilitre |
129
128
  | 5 | kg/l | kg·l⁻¹, kilogram per liter, kilograms per liter, kilogramme per litre, kilogrammes per litre |
@@ -147,7 +146,8 @@ These units are defined in `UnitMeasurements::SoundLevel`.
147
146
  | # | Name | Aliases |
148
147
  |:--|:--|:--|
149
148
  | 1 | B* | bel, bels |
150
- | 2 | Np | neper, nepers |
149
+ | _2_ | _dB_ | _decibel, decibels_ |
150
+ | 3 | Np | neper, nepers |
151
151
 
152
152
  ## 13. Plane angle
153
153
 
@@ -155,7 +155,7 @@ These units are defined in `UnitMeasurements::PlaneAngle`.
155
155
 
156
156
  | # | Name | Aliases |
157
157
  |:--|:--|:--|
158
- | 1 | rad* | radian, radians |
158
+ | _1_ | _rad*_ | _radian, radians_ |
159
159
  | 2 | deg | °, degree, degrees |
160
160
  | 3 | gon | ᵍ, grad, gradian, gradians |
161
161
  | 4 | cir | circle, circles |
@@ -171,7 +171,7 @@ These units are defined in `UnitMeasurements::SolidAngle`.
171
171
 
172
172
  | # | Name | Aliases |
173
173
  |:--|:--|:--|
174
- | 1 | sr* | steradian, steradians |
174
+ | _1_ | _sr*_ | _steradian, steradians_ |
175
175
  | 2 | sp | spat, spats |
176
176
  | 3 | deg² | (°)², sq °, square degree, square degrees |
177
177
  | 4 | arcmin² | (′)², sq ′, square arcminute, square arcminutes |
@@ -183,7 +183,7 @@ These units are defined in `UnitMeasurements::Force`.
183
183
 
184
184
  | # | Name | Aliases |
185
185
  |:--|:--|:--|
186
- | 1 | N* | newton, newtons |
186
+ | _1_ | _N*_ | _newton, newtons_ |
187
187
  | 2 | tf | tonne-force |
188
188
  | 3 | dyn | dyne, dynes |
189
189
  | 4 | kgf | kilogram-force, kilogramme-force |
@@ -191,25 +191,13 @@ These units are defined in `UnitMeasurements::Force`.
191
191
  | 6 | lbf | pound-force |
192
192
  | 7 | pdl | poundal, poundals |
193
193
 
194
- ## 16. Voltage
195
-
196
- These units are defined in `UnitMeasurements::Voltage`.
197
-
198
- | # | Name | Aliases |
199
- |:--|:--|:--|
200
- | 1 | V* | volt, volts |
201
- | 2 | abV | abvolt, abvolts |
202
- | 3 | statV | statvolt, statvolts |
203
- | 4 | W/A | W·A⁻¹, watt per ampere, watts per ampere |
204
- | 5 | J/C | J·C⁻¹, joule per coulomb, joules per coulomb |
205
-
206
- ## 17. Velocity
194
+ ## 16. Velocity
207
195
 
208
196
  These units are defined in `UnitMeasurements::Velocity`.
209
197
 
210
198
  | # | Name | Aliases |
211
199
  |:--|:--|:--|
212
- | 1 | m/s | m·s⁻¹, meter per second, meters per second, metre per second, metres per second |
200
+ | _1_ | _m/s_ | _m·s⁻¹, meter per second, meters per second, metre per second, metres per second_ |
213
201
  | 2 | m/min | m·min⁻¹, meter per minute, meters per minute, metre per minute, metres per minute |
214
202
  | 3 | m/h | m·h⁻¹, meter per hour, meters per hour, metre per hour, metres per hour |
215
203
  | 4 | Kn | kt, knot, knots |
@@ -220,24 +208,24 @@ These units are defined in `UnitMeasurements::Velocity`.
220
208
  | 9 | ft/min | ft·min⁻¹, foot per minute, feet per minute |
221
209
  | 10 | ft/h | ft·h⁻¹, foot per hour, feet per hour |
222
210
 
223
- ## 18. Acceleration
211
+ ## 17. Acceleration
224
212
 
225
213
  These units are defined in `UnitMeasurements::Acceleration`.
226
214
 
227
215
  | # | Name | Aliases |
228
216
  |:--|:--|:--|
229
- | 1 | m/s² | m/s^2, m·s⁻², meter per second squared, meters per second squared, metre per second squared, metres per second squared |
217
+ | _1_ | _m/s²_ | _m/s^2, m·s⁻², meter per second squared, meters per second squared, metre per second squared, metres per second squared_ |
230
218
  | 2 | in/s² | in/s^2, in·s⁻², inch per second squared, inches per second squared |
231
219
  | 3 | ft/s² | ft/s^2, ft·s⁻², foot per second squared, feet per second squared |
232
220
  | 4 | Kn/s | knot per second, knots per second |
233
221
 
234
- ## 19. Angular velocity
222
+ ## 18. Angular velocity
235
223
 
236
224
  These units are defined in `UnitMeasurements::AngularVelocity`.
237
225
 
238
226
  | # | Name | Aliases |
239
227
  |:--|:--|:--|
240
- | 1 | rad/s | rad·s⁻¹, radian per second, radians per second |
228
+ | _1_ | _rad/s_ | _rad·s⁻¹, radian per second, radians per second_ |
241
229
  | 2 | rad/min | rad·min⁻¹, radian per minute, radians per minute |
242
230
  | 3 | rad/h | rad·h⁻¹, radian per hour, radians per hour |
243
231
  | 4 | deg/s | °/s, deg·s⁻¹, degree per second, degrees per second |
@@ -250,107 +238,119 @@ These units are defined in `UnitMeasurements::AngularVelocity`.
250
238
  | 11 | gon/min | ᵍ/min, gon·min⁻¹, gradian per minute, gradians per minute |
251
239
  | 12 | gon/h | ᵍ/h, gon·h⁻¹, gradian per hour, gradians per hour |
252
240
 
253
- ## 20. Angular acceleration
241
+ ## 19. Angular acceleration
254
242
 
255
243
  These units are defined in `UnitMeasurements::AngularAcceleration`.
256
244
 
257
245
  | # | Name | Aliases |
258
246
  |:--|:--|:--|
259
- | 1 | rad/s² | rad/s^2, rad·s⁻², radian per second squared, radians per second squared |
247
+ | _1_ | _rad/s²_ | _rad/s^2, rad·s⁻², radian per second squared, radians per second squared_ |
260
248
  | 2 | deg/s² | deg/s^2, °/s², deg·s⁻², degree per second squared, degrees per second squared |
261
249
  | 3 | gon/s² | gon/s^2, ᵍ/s², gon·s⁻², gradian per second squared, gradians per second squared |
262
250
 
251
+ ## 20. Electric potential
252
+
253
+ These units are defined in `UnitMeasurements::ElectricPotential`.
254
+
255
+ | # | Name | Aliases |
256
+ |:--|:--|:--|
257
+ | _1_ | _V*_ | _volt, volts_ |
258
+ | 2 | abV | abvolt, abvolts |
259
+ | 3 | statV | statvolt, statvolts |
260
+ | 4 | W/A | W·A⁻¹, watt per ampere, watts per ampere |
261
+ | 5 | J/C | J·C⁻¹, joule per coulomb, joules per coulomb |
262
+
263
263
  ## 21. Electric charge
264
264
 
265
265
  These units are defined in `UnitMeasurements::ElectricCharge`.
266
266
 
267
267
  | # | Name | Aliases |
268
268
  |:--|:--|:--|
269
- | 1 | C* | coulomb, coulombs |
269
+ | _1_ | _C*_ | _coulomb, coulombs_ |
270
270
  | 2 | abC | abcoulomb, abcoulombs |
271
271
  | 3 | statC | statcoulomb, statcoulombs |
272
272
  | 4 | Fr | franklin, franklins |
273
273
  | 5 | Fd | faraday, faradays |
274
274
 
275
- ## 22. Capacitance
275
+ ## 22. Electrical capacitance
276
276
 
277
- These units are defined in `UnitMeasurements::Capacitance`.
277
+ These units are defined in `UnitMeasurements::ElectricalCapacitance`.
278
278
 
279
279
  | # | Symbol | Aliases |
280
280
  |:--|:--|:--|
281
- | 1 | F* | farad, farads |
281
+ | _1_ | _F*_ | _farad, farads_ |
282
282
  | 2 | abF | abfarad, abfarads |
283
283
  | 3 | statF | statfarad, statfarads |
284
284
  | 4 | C/V | C·V⁻¹, coulomb/volt, coulombs/volt, coulomb per volt, coulombs per volt |
285
285
 
286
- ## 23. Elastance
286
+ ## 23. Electrical elastance
287
287
 
288
- These units are defined in `UnitMeasurements::Elastance`.
288
+ These units are defined in `UnitMeasurements::ElectricalElastance`.
289
289
 
290
290
  | # | Name | Aliases |
291
291
  |:--|:--|:--|
292
- | 1 | D* | F⁻¹, daraf, darafs, reciprocal farad, reciprocal farads |
292
+ | _1_ | _D*_ | _F⁻¹, daraf, darafs, reciprocal farad, reciprocal farads_ |
293
293
  | 2 | V/C | V·C⁻¹, volt/coulomb, volts/coulomb, volt per coulomb, volts per coulomb |
294
294
 
295
- ## 24. Resistance
295
+ ## 24. Electrical resistance
296
296
 
297
- These units are defined in `UnitMeasurements::Resistance`.
297
+ These units are defined in `UnitMeasurements::ElectricalResistance`.
298
298
 
299
299
  | # | Name | Aliases |
300
300
  |:--|:--|:--|
301
- | 1 | Ω* | ω, ohm, ohms, reciprocal siemens |
301
+ | _1_ | _Ω*_ | _ω, ohm, ohms, reciprocal siemens_ |
302
302
  | 2 | abΩ | abω, abohm, abohms |
303
303
  | 3 | statΩ | statω, statohm, statohms |
304
304
  | 4 | S | siemens, mho, mhos |
305
- | 5 | V/A | V·A⁻¹, volt/amp., volts/amp., volt/ampere, volts/ampere, volt per ampere, volts per ampere |
305
+ | 5 | V/A | V·A⁻¹, volt/amp, volts/amp, volt/ampere, volts/ampere, volt per ampere, volts per ampere |
306
306
 
307
- ## 25. Conductance
307
+ ## 25. Electric conductance
308
308
 
309
- These units are defined in `UnitMeasurements::Conductance`.
309
+ These units are defined in `UnitMeasurements::ElectricConductance`.
310
310
 
311
311
  | # | Name | Aliases |
312
312
  |:--|:--|:--|
313
- | 1 | S* | ℧, Ω⁻¹, siemens, mho, mhos |
313
+ | _1_ | _S*_ | _℧, Ω⁻¹, siemens, mho, mhos_ |
314
314
  | 2 | abS | ab℧, absiemens, abmho, abmhos |
315
315
  | 3 | statS | stat℧, statsiemens, statmho, statmhos |
316
- | 3 | A/V | A·V⁻¹, amp./volt, amps./volt, ampere/volt, amperes/volt, ampere per volt, amperes per volt |
316
+ | 3 | A/V | A·V⁻¹, amp/volt, amps/volt, ampere/volt, amperes/volt, ampere per volt, amperes per volt |
317
+
318
+ ## 26. Electrical inductance
319
+
320
+ These units are defined in `UnitMeasurements::ElectricalInductance`.
321
+
322
+ | # | Name | Aliases |
323
+ |:--|:--|:--|
324
+ | _1_ | _H*_ | _henry, henries_ |
325
+ | 2 | abH | abhenry, abhenries |
326
+ | 3 | statH | stathenry, stathenries |
327
+ | 4 | Wb/A | Wb·A⁻¹, weber per ampere, webers per ampere |
317
328
 
318
- ## 26. Magnetic flux
329
+ ## 27. Magnetic flux
319
330
 
320
331
  These units are defined in `UnitMeasurements::MagneticFlux`.
321
332
 
322
333
  | # | Name | Aliases |
323
334
  |:--|:--|:--|
324
- | 1 | Wb* | weber, webers |
335
+ | _1_ | _Wb*_ | _weber, webers_ |
325
336
  | 2 | Mx | maxwell, maxwells |
326
337
  | 3 | T·m² | T*m^2, tesla-square meter, tesla-square metre |
327
338
  | 4 | G·cm² | G*cm^2, gauss-square centimeter, gauss-square centimetre |
328
339
 
329
- ## 27. Magnetic induction
340
+ ## 28. Magnetic induction
330
341
 
331
342
  These units are defined in `UnitMeasurements::MagneticInduction`.
332
343
 
333
344
  | # | Name | Aliases |
334
345
  |:--|:--|:--|
335
- | 1 | T* | tesla, teslas |
346
+ | _1_ | _T*_ | _tesla, teslas_ |
336
347
  | 2 | G | Gs, gauss, gausses |
337
348
 
338
- ## 28. Magnetic field
349
+ ## 29. Magnetic field
339
350
 
340
351
  These units are defined in `UnitMeasurements::MagneticField`.
341
352
 
342
353
  | # | Name | Aliases |
343
354
  |:--|:--|:--|
344
- | 1 | Oe* | oersted, oersteds |
345
- | 2 | A/m | A·m⁻¹, ampere/meter, ampere/metre, ampere per meter, ampere per metre, amperes per meter, amperes per metre |
346
-
347
- ## 29. Inductance
348
-
349
- These units are defined in `UnitMeasurements::Inductance`.
350
-
351
- | # | Name | Aliases |
352
- |:--|:--|:--|
353
- | 1 | H* | henry, henries |
354
- | 2 | abH | abhenry, abhenries |
355
- | 3 | statH | stathenry, stathenries |
356
- | 4 | Wb/A | Wb·A⁻¹, weber per ampere, webers per ampere |
355
+ | _1_ | _Oe*_ | _oersted, oersteds_ |
356
+ | 2 | A/m | A·m⁻¹, ampere/meter, ampere/metre, amperes/meter, amperes/metre, ampere per meter, ampere per metre, amperes per meter, amperes per metre |
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unit_measurements
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harshal LADHE
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-03 00:00:00.000000000 Z
11
+ date: 2023-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -108,6 +108,7 @@ files:
108
108
  - lib/unit_measurements/comparison.rb
109
109
  - lib/unit_measurements/conversion.rb
110
110
  - lib/unit_measurements/errors/parse_error.rb
111
+ - lib/unit_measurements/errors/primitive_unit_already_set_error.rb
111
112
  - lib/unit_measurements/errors/unit_already_defined_error.rb
112
113
  - lib/unit_measurements/errors/unit_error.rb
113
114
  - lib/unit_measurements/formatter.rb
@@ -124,14 +125,16 @@ files:
124
125
  - lib/unit_measurements/unit_groups/angular_acceleration.rb
125
126
  - lib/unit_measurements/unit_groups/angular_velocity.rb
126
127
  - lib/unit_measurements/unit_groups/area.rb
127
- - lib/unit_measurements/unit_groups/capacitance.rb
128
- - lib/unit_measurements/unit_groups/conductance.rb
129
128
  - lib/unit_measurements/unit_groups/density.rb
130
- - lib/unit_measurements/unit_groups/elastance.rb
131
129
  - lib/unit_measurements/unit_groups/electric_charge.rb
130
+ - lib/unit_measurements/unit_groups/electric_conductance.rb
132
131
  - lib/unit_measurements/unit_groups/electric_current.rb
132
+ - lib/unit_measurements/unit_groups/electric_potential.rb
133
+ - lib/unit_measurements/unit_groups/electrical_capacitance.rb
134
+ - lib/unit_measurements/unit_groups/electrical_elastance.rb
135
+ - lib/unit_measurements/unit_groups/electrical_inductance.rb
136
+ - lib/unit_measurements/unit_groups/electrical_resistance.rb
133
137
  - lib/unit_measurements/unit_groups/force.rb
134
- - lib/unit_measurements/unit_groups/inductance.rb
135
138
  - lib/unit_measurements/unit_groups/length.rb
136
139
  - lib/unit_measurements/unit_groups/luminous_intensity.rb
137
140
  - lib/unit_measurements/unit_groups/magnetic_field.rb
@@ -139,17 +142,13 @@ files:
139
142
  - lib/unit_measurements/unit_groups/magnetic_induction.rb
140
143
  - lib/unit_measurements/unit_groups/plane_angle.rb
141
144
  - lib/unit_measurements/unit_groups/quantity.rb
142
- - lib/unit_measurements/unit_groups/resistance.rb
143
145
  - lib/unit_measurements/unit_groups/solid_angle.rb
144
146
  - lib/unit_measurements/unit_groups/sound_level.rb
145
147
  - lib/unit_measurements/unit_groups/temperature.rb
146
148
  - lib/unit_measurements/unit_groups/time.rb
147
149
  - lib/unit_measurements/unit_groups/velocity.rb
148
- - lib/unit_measurements/unit_groups/voltage.rb
149
150
  - lib/unit_measurements/unit_groups/volume.rb
150
151
  - lib/unit_measurements/unit_groups/weight.rb
151
- - lib/unit_measurements/unit_methods.rb
152
- - lib/unit_measurements/unit_system.rb
153
152
  - lib/unit_measurements/version.rb
154
153
  - unit_measurements.gemspec
155
154
  - units.md
@@ -1,19 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # -*- frozen_string_literal: true -*-
3
- # -*- warn_indent: true -*-
4
-
5
- UnitMeasurements::Capacitance = UnitMeasurements.build do
6
- system :metric do
7
- primitive :F
8
-
9
- si_unit :F, aliases: [:farad, :farads]
10
- unit :"C/V", value: "1 F", aliases: [:"C·V⁻¹", :"coulomb/volt", :"coulombs/volt", :"coulomb per volt", :"coulombs per volt"]
11
- end
12
-
13
- system :centimetre_gram_second do
14
- primitive :statF
15
-
16
- unit :abF, value: "1e+9 F", aliases: [:abfarad, :abfarads]
17
- unit :statF, value: "1.1127e-12 F", aliases: [:statfarad, :statfarads]
18
- end
19
- end
@@ -1,19 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # -*- frozen_string_literal: true -*-
3
- # -*- warn_indent: true -*-
4
-
5
- UnitMeasurements::Conductance = UnitMeasurements.build do
6
- system :metric do
7
- primitive :S
8
-
9
- si_unit :S, aliases: [:℧, :"Ω⁻¹", :siemens, :mho, :mhos]
10
- unit :"A/V", value: "1 S", aliases: [:"A·V⁻¹", :"amp./volt", :"amps./volt", :"ampere/volt", :"amperes/volt", :"ampere per volt", :"amperes per volt"]
11
- end
12
-
13
- system :centimetre_gram_second do
14
- primitive :statS
15
-
16
- unit :abS, value: "1e+9 S", aliases: [:ab℧, :absiemens, :abmho, :abmhos]
17
- unit :statS, value: "1.112347e-12 S", aliases: [:stat℧, :statsiemens, :statmho, :statmhos]
18
- end
19
- end
@@ -1,12 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # -*- frozen_string_literal: true -*-
3
- # -*- warn_indent: true -*-
4
-
5
- UnitMeasurements::Elastance = UnitMeasurements.build do
6
- system :metric do
7
- primitive :D
8
-
9
- si_unit :D, aliases: [:"F⁻¹", :daraf, :darafs, :"reciprocal farad", :"reciprocal farads"]
10
- unit :"V/C", value: "1 D", aliases: [:"V·C⁻¹", :"volt/coulomb", :"volts/coulomb", :"volt per coulomb", :"volts per coulomb"]
11
- end
12
- end
@@ -1,19 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # -*- frozen_string_literal: true -*-
3
- # -*- warn_indent: true -*-
4
-
5
- UnitMeasurements::Inductance = UnitMeasurements.build do
6
- system :metric do
7
- primitive :H
8
-
9
- si_unit :H, aliases: [:henry, :henries]
10
- unit :"Wb/A", value: "1 H", aliases: [:"Wb·A⁻¹", :"weber per ampere", :"webers per ampere"]
11
- end
12
-
13
- system :centimetre_gram_second do
14
- primitive :abH
15
-
16
- unit :abH, value: "1e-9 H", aliases: [:abhenry, :abhenries]
17
- unit :statH, value: "8.98755178736818e+11 H", aliases: [:stathenry, :stathenries]
18
- end
19
- end
@@ -1,20 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # -*- frozen_string_literal: true -*-
3
- # -*- warn_indent: true -*-
4
-
5
- UnitMeasurements::Resistance = UnitMeasurements.build do
6
- system :metric do
7
- primitive :Ω
8
-
9
- si_unit :Ω, aliases: [:ω, :ohm, :ohms, :"reciprocal siemens"]
10
- unit :S, value: "1 Ω", aliases: [:siemens, :mho, :mhos]
11
- unit :"V/A", value: "1 Ω", aliases: [:"V·A⁻¹", :"volt/amp.", :"volts/amp.", :"volt/ampere", :"volts/ampere", :"volt per ampere", :"volts per ampere"]
12
- end
13
-
14
- system :centimetre_gram_second do
15
- primitive :statΩ
16
-
17
- unit :abΩ, value: "1e-9 Ω", aliases: [:abω, :abohm, :abohms]
18
- unit :statΩ, value: "8.98755178737e+11 Ω", aliases: [:statω, :statohm, :statohms]
19
- end
20
- end
@@ -1,21 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # -*- frozen_string_literal: true -*-
3
- # -*- warn_indent: true -*-
4
-
5
- UnitMeasurements::Voltage = UnitMeasurements.build do
6
- system :metric do
7
- primitive :V
8
-
9
- si_unit :V, aliases: [:volt, :volts]
10
-
11
- unit :"W/A", value: "1 V", aliases: [:"W·A⁻¹", :"watt per ampere", :"watts per ampere"]
12
- unit :"J/C", value: "1 V", aliases: [:"J·C⁻¹", :"joule per coulomb", :"joules per coulomb"]
13
- end
14
-
15
- system :centimetre_gram_second do
16
- primitive :statV
17
-
18
- unit :abV, value: "1e-8 V", aliases: [:abvolt, :abvolts]
19
- unit :statV, value: "299.792458 V", aliases: [:statvolt, :statvolts]
20
- end
21
- end
@@ -1,45 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # -*- frozen_string_literal: true -*-
3
- # -*- warn_indent: true -*-
4
-
5
- module UnitMeasurements
6
- module UnitMethods
7
- def unit_for(name)
8
- unit_name_to_unit(name)
9
- end
10
-
11
- def unit_for!(name)
12
- unit = unit_for(name)
13
- raise UnitError, name unless unit
14
- unit
15
- end
16
- alias_method :[], :unit_for!
17
-
18
- def unit_with_name_and_aliases
19
- units.each_with_object({}) do |unit, hash|
20
- unit.names.each { |name| hash[name.to_s] = unit }
21
- end
22
- end
23
-
24
- def unit_names
25
- units.map(&:name).sort
26
- end
27
-
28
- def unit_names_with_aliases
29
- units.flat_map(&:names).sort
30
- end
31
-
32
- def unit_name_to_unit(name)
33
- unit_with_name_and_aliases[name.to_s]
34
- end
35
-
36
- def defined?(name)
37
- unit = unit_for(name)
38
- unit ? unit.name == name.to_s : false
39
- end
40
-
41
- def unit_or_alias?(name)
42
- !!unit_for(name)
43
- end
44
- end
45
- end
@@ -1,29 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # -*- frozen_string_literal: true -*-
3
- # -*- warn_indent: true -*-
4
-
5
- module UnitMeasurements
6
- class UnitSystem
7
- include UnitMethods
8
-
9
- attr_reader :name, :primitive, :units
10
-
11
- def initialize(name)
12
- @name = name
13
- @primitive = nil
14
- @units = []
15
- end
16
-
17
- def add_unit(unit)
18
- @units << unit
19
- end
20
-
21
- def set_primitive(primitive)
22
- @primitive = unit_for!(primitive)
23
- end
24
-
25
- def primitive?(unit)
26
- @primitive.to_s == (unit.is_a?(Unit) ? unit.name : unit)
27
- end
28
- end
29
- end