unit_measurements 5.8.0 → 5.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9cd4663e023a6580016dca729bc82766fba463f589a262408404d23e3fe478ef
4
- data.tar.gz: d594ce914384d88e0563c7623463d7fbb649bef97c13cf46f3f8832b837da641
3
+ metadata.gz: 519b4112a693a9c722e1241381eafb095005e4cbdef9792662e339df52087abf
4
+ data.tar.gz: 34054c7ef9056fe40d25f698403f0585b805c7426710302b102e93709582090b
5
5
  SHA512:
6
- metadata.gz: 6c481080564acab8baf3e706e1c7bc28cab1c7631bff878413ba9154532df4aee4f63b8a7f784d27d5926ed00b367720dbeb5c372edc5a21b45261dbec94af67
7
- data.tar.gz: 1eeb96b7dd64e071efecba74f4ef19791f447e17fad484809062dfc8fc043aaaec34e42f57ea97a50e53b2b514b806e0e0c025008ef1890395f1b9a4fbba2b3e
6
+ metadata.gz: cbfdf296b4fab0d7b2c5a7932939ca9cba3205d42f9709d72b070b98748b97cd68a4a29d10c9f086fbd9decf65f906a977458f902e70a04ba2ee019326062f5a
7
+ data.tar.gz: df52b1126595b98d905a9f9b86b9884dcddd4c06b3ac547ba8bbac0d2dc4108d35329b1a629d278bf4cadf2959d4923e27be14a08702d8b5fd911affc977a0db
data/CHANGELOG.md CHANGED
@@ -1,3 +1,29 @@
1
+ ## [5.10.0](https://github.com/shivam091/unit_measurements/compare/v5.9.0...v5.10.0) - 2023-11-09
2
+
3
+ ### What's new
4
+
5
+ - Added new method `#to_fs` to format the measurement.
6
+ - Aliased arithmetic method `#**` to `#pow` and `#^`.
7
+ - Aliased arithmetic method `#-@` to `#inverse` and `#negate`.
8
+ - Added `UnitMeasurements::BlankQuantityError` error if tried to initialize the `Measurement` with a blank quantity.
9
+ - Added `UnitMeasurements::BlankUnitError` error if tried to initialize the `Measurement` with a blank unit.
10
+
11
+ ### What's deprecated
12
+
13
+ - `#format` method in favour of `#to_fs`.
14
+
15
+ ----------
16
+
17
+ ## [5.9.0](https://github.com/shivam091/unit_measurements/compare/v5.8.0...v5.9.0) - 2023-11-08
18
+
19
+ ### What's new
20
+
21
+ - Added new units of `force`.
22
+ - Added new units of `torque`.
23
+ - Added new units of `energy`.
24
+
25
+ ----------
26
+
1
27
  ## [5.8.0](https://github.com/shivam091/unit_measurements/compare/v5.7.0...v5.8.0) - 2023-11-06
2
28
 
3
29
  ### What's new
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- unit_measurements (5.8.0)
4
+ unit_measurements (5.10.0)
5
5
  activesupport (~> 7.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -95,6 +95,7 @@ UnitMeasurements::Length.new(1, "km")
95
95
 
96
96
  This gem allows you to convert among units of same unit group. You can convert measurement to other unit using `#convert_to`
97
97
  (aliased as `#to`, `#in`, and `#as`) or `#convert_to!` (aliased as `#to!`, `#in!`, and `#as!`) methods.
98
+ You can also chain call of `#convert_to` and `#convert_to!` methods.
98
99
 
99
100
  These methods provide `use_cache` parameter which defaults to `false` to indicate whether the caching of conversion factors should happen.
100
101
 
@@ -119,13 +120,6 @@ UnitMeasurements::Length.new(1, "cm").convert_to("primitive")
119
120
  #=> 0.01 m
120
121
  ```
121
122
 
122
- You can also chain call of `#convert_to` and `#convert_to!` methods as:
123
-
124
- ```ruby
125
- UnitMeasurements::Length.new(100, "m").convert_to("ft").convert_to!("in", use_cache: true)
126
- #=> 3937.00787401574071916010498688 in
127
- ```
128
-
129
123
  **Parse string without having to split out the quantity and source unit:**
130
124
 
131
125
  This method provides `use_cache` parameter which defaults to `false` to indicate whether the caching of conversion factors should happen.
@@ -198,7 +192,7 @@ UnitMeasurements::Length.new(100, "m").to("in").to_fs("%.4<quantity>f %<unit>s")
198
192
  You can check more about formatting along with their examples
199
193
  [here](https://shivam091.github.io/unit_measurements/UnitMeasurements/Formatter.html).
200
194
 
201
- **Extract the unit and the quantity from measurement:**
195
+ **Extract the quantity and the unit from measurement:**
202
196
 
203
197
  ```ruby
204
198
  length = UnitMeasurements::Length.new(1, "km")
@@ -208,6 +202,15 @@ length.unit
208
202
  #=> #<UnitMeasurements::Unit: km (kilometer, kilometers, kilometre, kilometres)>
209
203
  ```
210
204
 
205
+ Unit object can be interrogated for a range of attributes:
206
+
207
+ ```ruby
208
+ length.unit.aliases # Alternative names for the unit.
209
+ #=> #<Set: {"kilometer", "kilometers", "kilometre", "kilometres"}>
210
+ length.unit.conversion_factor # Conversion factor relative to primitive unit.
211
+ #=> 1000.0
212
+ ```
213
+
211
214
  **See primitive unit of the unit group:**
212
215
 
213
216
  ```ruby
@@ -134,6 +134,8 @@ module UnitMeasurements
134
134
  def **(other)
135
135
  arithmetic_operation(other, :**)
136
136
  end
137
+ alias_method :pow, :**
138
+ alias_method :^, :**
137
139
 
138
140
  # Negates the quantity of the measurement.
139
141
  #
@@ -151,6 +153,8 @@ module UnitMeasurements
151
153
  def -@
152
154
  self.class.new(-self.quantity, self.unit)
153
155
  end
156
+ alias_method :inverse, :-@
157
+ alias_method :negate, :-@
154
158
 
155
159
  # Checks whether the quantity of the measurement is nonzero.
156
160
  #
@@ -148,3 +148,5 @@ require "unit_measurements/errors/unit_error"
148
148
  require "unit_measurements/errors/parse_error"
149
149
  require "unit_measurements/errors/unit_already_defined_error"
150
150
  require "unit_measurements/errors/primitive_unit_already_set_error"
151
+ require "unit_measurements/errors/blank_quantity_error"
152
+ require "unit_measurements/errors/blank_unit_error"
@@ -55,7 +55,7 @@ module UnitMeasurements
55
55
  # @since 5.3.0
56
56
  def use_cache=(use_cache)
57
57
  unless [true, false].include?(use_cache)
58
- raise BaseError, "Configuration#use_cache= only accepts true or false, but received #{use_cache}"
58
+ raise ArgumentError, "Configuration#use_cache= only accepts true or false, but received #{use_cache}"
59
59
  end
60
60
 
61
61
  @use_cache = use_cache
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ module UnitMeasurements
6
+ # The +UnitMeasurements::BlankQuantityError+ class represents an error that
7
+ # occurs when trying to initialize the +Measurement+ with a blank quantity.
8
+ #
9
+ # @see BaseError
10
+ # @author {Harshal V. Ladhe}[https://shivam091.github.io/]
11
+ # @since 5.10.0
12
+ class BlankQuantityError < BaseError
13
+ # Initializes a new +BlankQuantityError+ instance.
14
+ #
15
+ # @author {Harshal V. Ladhe}[https://shivam091.github.io/]
16
+ # @since 5.10.0
17
+ def initialize
18
+ super("Quantity cannot be blank.")
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # -*- frozen_string_literal: true -*-
3
+ # -*- warn_indent: true -*-
4
+
5
+ module UnitMeasurements
6
+ # The +UnitMeasurements::BlankUnitError+ class represents an error that
7
+ # occurs when trying to initialize the +Measurement+ with a blank unit.
8
+ #
9
+ # @see BaseError
10
+ # @author {Harshal V. Ladhe}[https://shivam091.github.io/]
11
+ # @since 5.10.0
12
+ class BlankUnitError < BaseError
13
+ # Initializes a new +BlankUnitError+ instance.
14
+ #
15
+ # @author {Harshal V. Ladhe}[https://shivam091.github.io/]
16
+ # @since 5.10.0
17
+ def initialize
18
+ super("Unit cannot be blank.")
19
+ end
20
+ end
21
+ end
@@ -18,19 +18,27 @@ module UnitMeasurements
18
18
  # containing placeholders for +quantity+ and +unit+.
19
19
  DEFAULT_FORMAT = "%.2<quantity>f %<unit>s".freeze
20
20
 
21
+ # @deprecated This method has been deprecated in favour of {#to_fs}.
22
+ #
23
+ # This method is no longer recommended for use. Please use {#to_fs}
24
+ # instead.
25
+ def format(format = nil)
26
+ warn "DEPRECATION WARNING: The `format` method is deprecated and will be removed in upcoming release. Please use `to_fs` instead."
27
+ to_fs(format)
28
+ end
29
+
21
30
  # Formats measurement to certain formatted string specified by +format+.
22
- # If +format+ is not specified, it uses +DEFAULT_FORMAT+ for formatting the
31
+ # If +format+ is not specified, it uses {DEFAULT_FORMAT} for formatting the
23
32
  # measurement.
24
33
  #
25
- # The format method allows for customization of the output format of a
26
- # measurement. It uses format placeholders for +quantity+ and +unit+. If no
27
- # custom format is provided, it will use the +DEFAULT_FORMAT+.
34
+ # The {#to_fs} method allows for customization of the output format of a
35
+ # measurement. It uses format placeholders for +quantity+ and +unit+.
28
36
  #
29
37
  # @example
30
- # UnitMeasurements::Length.new(1, "m").to("in").format
38
+ # UnitMeasurements::Length.new(1, "m").to("in").to_fs
31
39
  # => "39.37 in"
32
40
  #
33
- # UnitMeasurements::Length.new(1, "m").to("in").format("%.4<quantity>f %<unit>s")
41
+ # UnitMeasurements::Length.new(1, "m").to("in").to_fs("%.4<quantity>f %<unit>s")
34
42
  # => "39.3701 in"
35
43
  #
36
44
  # @param [String, optional] format
@@ -41,10 +49,9 @@ module UnitMeasurements
41
49
  #
42
50
  # @see DEFAULT_FORMAT
43
51
  # @author {Harshal V. Ladhe}[https://shivam091.github.io/]
44
- # @since 1.1.0
45
- def format(format = nil)
52
+ # @since 5.10.0
53
+ def to_fs(format = nil)
46
54
  kwargs = {quantity: quantity, unit: unit.to_s}
47
-
48
55
  (format || DEFAULT_FORMAT) % kwargs
49
56
  end
50
57
  end
@@ -64,7 +64,7 @@ module UnitMeasurements
64
64
  #
65
65
  # @author {Harshal V. Ladhe}[https://shivam091.github.io/]
66
66
  # @since 1.6.0
67
- def floor(ndigits =0)
67
+ def floor(ndigits = 0)
68
68
  self.class.new(quantity.floor(ndigits), unit)
69
69
  end
70
70
 
@@ -84,7 +84,7 @@ module UnitMeasurements
84
84
  #
85
85
  # @author {Harshal V. Ladhe}[https://shivam091.github.io/]
86
86
  # @since 1.6.0
87
- def ceil(ndigits =0)
87
+ def ceil(ndigits = 0)
88
88
  self.class.new(quantity.ceil(ndigits), unit)
89
89
  end
90
90
  end
@@ -104,14 +104,16 @@ module UnitMeasurements
104
104
  # @param [Numeric|String] quantity The quantity of the measurement.
105
105
  # @param [String|Unit] unit The unit of the measurement.
106
106
  #
107
- # @raise [BaseError] If +quantity+ or +unit+ is blank.
107
+ # @raise [BlankQuantityError] If +quantity+ is blank.
108
+ # @raise [BlankUnitError] If +unit+ is blank.
108
109
  #
109
- # @see BaseError
110
+ # @see BlankQuantityError
111
+ # @see BlankUnitError
110
112
  # @author {Harshal V. Ladhe}[https://shivam091.github.io/]
111
113
  # @since 1.0.0
112
114
  def initialize(quantity, unit)
113
- raise BaseError, "Quantity cannot be blank." if quantity.blank?
114
- raise BaseError, "Unit cannot be blank." if unit.blank?
115
+ raise BlankQuantityError if quantity.blank?
116
+ raise BlankUnitError if unit.blank?
115
117
 
116
118
  @quantity = convert_quantity(quantity)
117
119
  @unit = unit_from_unit_or_name!(unit)
@@ -10,6 +10,10 @@ UnitMeasurements::Energy = UnitMeasurements.build do
10
10
  si_unit "cal", value: "4.1868 J", aliases: ["calorie", "calories"]
11
11
 
12
12
  unit "eV", value: "1.602176634e-19 J", aliases: ["electronvolt", "electron volt", "electron-volt"]
13
+
14
+ unit "W⋅s", value: "1 J", aliases: ["W*s", "watt-second"]
15
+ unit "W⋅h", value: "3600 J", aliases: ["W*h", "watt-hour"]
16
+ unit "kW⋅h", value: "3.6e+6 J", aliases: ["kW*h", "kilowatt-hour"]
13
17
  end
14
18
 
15
19
  system :centimetre_gram_second do
@@ -17,11 +21,37 @@ UnitMeasurements::Energy = UnitMeasurements.build do
17
21
  end
18
22
 
19
23
  system :us_customary do
20
- si_unit "Btu", value: "1055.05585262 J", aliases: ["btu", "btus", "british thermal unit", "british thermal units"]
24
+ si_unit "BTU", value: "1055.05585262 J", aliases: ["Btu", "british thermal unit", "british thermal units"]
21
25
 
22
- unit "thm", value: "100 kBtu", aliases: ["therm", "therms"]
26
+ unit "thm", value: "100 kBTU", aliases: ["therm", "therms"]
23
27
  unit "quad", value: "1.05505585262e+18 J", aliases: ["quads"]
28
+
29
+ unit "ft⋅lbf", value: "1.3558179483314004 J", aliases: ["ft*lbf", "ft⋅lb", "ft*lb", "foot-pound force"]
30
+ unit "in⋅lbf", value: "0.1129848290276167 J", aliases: ["in*lbf", "in⋅lb", "in*lb", "inch-pound force"]
31
+ end
32
+
33
+ system :foot_pound_second do
34
+ unit "ft⋅pdl", value: "4.21401100938048e-2 J", aliases: ["ft*pdl", "foot-poundal"]
35
+ end
36
+
37
+ system :metre_tonne_second do
38
+ unit "th", value: "4.1868e+6 J", aliases: ["thermie", "thermies"]
39
+ end
40
+
41
+ system :gravitational_metric do
42
+ unit "kp⋅m", value: "9.80665 J", aliases: ["kpm", "kp*m", "kilopond-metre", "kilopond-meter"]
43
+ end
44
+
45
+ system :imperial do
46
+ unit "hp⋅h", value: "2.685e+13 erg", aliases: ["hp*h", "horsepower-hour"]
24
47
  end
25
48
 
49
+ unit "Ry", value: "2.179872e-18 J", aliases: ["rydberg"]
50
+ unit "Ha", value: "4.359744e-18 J", aliases: ["hartree", "atomic unit of energy"]
51
+ unit "boe", value: "5.86152 GJ", aliases: ["barrel of oil equivalent", "barrels of oil equivalent"]
52
+ unit "tce", value: "29.3076 GJ", aliases: ["TCE", "tonne of coal equivalent", "tonnes of coal equivalent"]
53
+ unit "toe", value: "41.868 GJ", aliases: ["tonne of oil equivalent", "tonnes of oil equivalent"]
26
54
  unit "foe", value: "1e+51 erg", aliases: ["bethe"]
55
+ unit "l⋅atm", value: "101.325 J", aliases: ["l*atm", "litre-atmosphere", "liter-atmosphere"]
56
+ unit "gal⋅atm", value: "460.63256925 J", aliases: ["gal*atm", "gallon-atmosphere"]
27
57
  end
@@ -8,7 +8,10 @@ UnitMeasurements::Force = UnitMeasurements.build do
8
8
  system :metric do
9
9
  si_unit "N", aliases: ["newton", "newtons"]
10
10
 
11
- unit "kgf", value: "9.80665 N", aliases: ["kilogram-force", "kilogramme-force"]
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 "mgvf", value: "9.80665 mN", aliases: ["gvtf", "gravet-force", "milligrave-force"]
12
15
  end
13
16
 
14
17
  system :centimetre_gram_second do
@@ -16,7 +19,8 @@ UnitMeasurements::Force = UnitMeasurements.build do
16
19
  end
17
20
 
18
21
  system :metre_tonne_second do
19
- unit "tf", value: "8896.443230521 N", aliases: ["tonne-force"]
22
+ unit "sn", value: "1e+3 N", aliases: ["sthene", "sthenes", "sthène"]
23
+ unit "tf", value: "8896.443230521 N", aliases: ["metric ton-force", "tonne-force"]
20
24
  end
21
25
 
22
26
  system :english_engineering do
@@ -27,4 +31,16 @@ UnitMeasurements::Force = UnitMeasurements.build do
27
31
  unit "pdl", value: "0.138254954376 N", aliases: ["poundal", "poundals"]
28
32
  unit "ozf", value: "0.27801385095378125 N", aliases: ["ounce-force"]
29
33
  end
34
+
35
+ system :us_customary do
36
+ unit "tnf", value: "2000 lbf", aliases: ["ton-force", "short ton-force"]
37
+ unit "kipf", value: "4.4482216152605e+3 N", aliases: ["kip", "klbf", "kip-force"]
38
+ end
39
+
40
+ system :imperial do
41
+ unit "LTf", value: "2240 lbf", aliases: ["long ton-force"]
42
+ unit "(lb⋅m)/s²", value: "0.45359237 N", aliases: ["(lb*m)/s^2", "pound meter per second squared", "pound metre per second squared"]
43
+ unit "(lb⋅ft)/s²", value: "0.138254954376 N", aliases: ["(lb*ft)/s^2", "pound foot per second squared"]
44
+ unit "(lb⋅in)/s²", value: "0.011521246198 N", aliases: ["(lb*in)/s^2", "pound inch per second squared"]
45
+ end
30
46
  end
@@ -8,11 +8,22 @@ UnitMeasurements::Torque = UnitMeasurements.build do
8
8
  system :metric do
9
9
  si_unit "N·m", aliases: ["N*m", "newton meter", "newton metre"]
10
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
+
11
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"]
12
21
  end
13
22
 
14
23
  system :centimetre_gram_second do
24
+ unit "dyn·m", value: "1e-5 N·m", aliases: ["dyn*m", "dyne meter", "dyne metre"]
15
25
  unit "dyn·cm", value: "1e-7 N·m", aliases: ["dyn*cm", "dyne centimeter", "dyne centimetre"]
26
+ unit "dyn·mm", value: "1e-8 N·m", aliases: ["dyn*mm", "dyne millimeter", "dyne millimetre"]
16
27
  end
17
28
 
18
29
  system :foot_pound_second do
@@ -4,5 +4,5 @@
4
4
 
5
5
  module UnitMeasurements
6
6
  # Current stable version.
7
- VERSION = "5.8.0"
7
+ VERSION = "5.10.0"
8
8
  end
data/units.md CHANGED
@@ -287,12 +287,22 @@ These units are defined in `UnitMeasurements::Force`.
287
287
  | # | Name | Aliases |
288
288
  |:--|:--|:--|
289
289
  | _1_ | _N*_ | _newton, newtons_ |
290
- | 2 | tf | tonne-force |
291
- | 3 | dyn | dyne, dynes |
292
- | 4 | kgf | kilogram-force, kilogramme-force |
293
- | 5 | ozf | ounce-force |
294
- | 6 | lbf | pound-force |
295
- | 7 | pdl | poundal, poundals |
290
+ | 2 | p | pond, ponds |
291
+ | 3 | gf | gram-force, gramme-force |
292
+ | 4 | tf | metric ton-force, tonne-force |
293
+ | 5 | sn | sthene, sthenes, sthène |
294
+ | 6 | dyn | dyne, dynes |
295
+ | 7 | kgf | kp, gvf, kilogram-force, kilogramme-force |
296
+ | 8 | ozf | ounce-force |
297
+ | 9 | lbf | pound-force |
298
+ | 10 | pdl | poundal, poundals |
299
+ | 11 | tnf | ton-force, short ton-force |
300
+ | 12 | LTf | long ton-force |
301
+ | 13 | mgvf | gvtf, gravet-force, milligrave-force |
302
+ | 14 | kipf | kip, klbf, kip-force |
303
+ | 15 | (lb⋅m)/s² | (lb*m)/s^2, pound meter per second squared, pound metre per second squared |
304
+ | 16 | (lb⋅ft)/s² | (lb*ft)/s^2, pound foot per second squared |
305
+ | 17 | (lb⋅in)/s² | (lb*in)/s^2, pound inch per second squared |
296
306
 
297
307
  ## 16. Velocity or speed
298
308
 
@@ -539,13 +549,22 @@ These units are defined in `UnitMeasurements::Torque`.
539
549
  | # | Name | Aliases |
540
550
  |:--|:--|:--|
541
551
  | _1_ | _N·m*_ | _N*m, newton meter, newton metre_ |
542
- | 2 | kgf·m | kgf*m, Kilogram-force meter, kilogramme-force metre |
543
- | 3 | dyn·cm | dyn*cm, dyne centimeter, dyne centimetre |
544
- | 4 | pdl⋅ft | pdl*ft, poundal foot, foot-poundal |
545
- | 5 | ozf·in | oz⋅in, ozf\*in, oz\*in, ounce-force inch, ounce-inch |
546
- | 6 | ozf·ft | oz⋅ft, ozf\*ft, oz\*ft, ounce-force foot, ounce-foot |
547
- | 7 | lbf⋅in | lb⋅in, lbf\*in, lb\*in, pound-force inch, pound-inch |
548
- | 8 | lbf⋅ft | lb⋅ft, lbf\*ft, lb\*ft, pound-force foot, pound-foot |
552
+ | 2 | N·cm | N*cm, newton centimeter, newton centimetre |
553
+ | 3 | N·mm | N*mm, newton millimeter, newton millimetre |
554
+ | 4 | gf·m | gf*m, gram-force meter, gramme-force metre |
555
+ | 5 | gf·cm | gf*cm, gram-force centimeter, gramme-force centimetre |
556
+ | 6 | gf·mm | gf*mm, gram-force millimeter, gramme-force millimetre |
557
+ | 7 | kgf·m | kgf*m, Kilogram-force meter, kilogramme-force metre |
558
+ | 8 | kgf·cm | kgf*cm, Kilogram-force centimeter, kilogramme-force centimetre |
559
+ | 9 | kgf·mm | kgf*mm, Kilogram-force millimeter, kilogramme-force millimetre |
560
+ | 10 | dyn·m | dyn*m, dyne meter, dyne metre |
561
+ | 11 | dyn·cm | dyn*cm, dyne centimeter, dyne centimetre |
562
+ | 12 | dyn·mm | dyn*mm, dyne millimeter, dyne millimetre |
563
+ | 13 | pdl⋅ft | pdl*ft, poundal foot, foot-poundal |
564
+ | 14 | ozf·in | oz⋅in, ozf\*in, oz\*in, ounce-force inch, ounce-inch |
565
+ | 15 | ozf·ft | oz⋅ft, ozf\*ft, oz\*ft, ounce-force foot, ounce-foot |
566
+ | 16 | lbf⋅in | lb⋅in, lbf\*in, lb\*in, pound-force inch, pound-inch |
567
+ | 17 | lbf⋅ft | lb⋅ft, lbf\*ft, lb\*ft, pound-force foot, pound-foot |
549
568
 
550
569
  ## 35. Luminous flux
551
570
 
@@ -629,13 +648,29 @@ These units are defined in `UnitMeasurements::Energy`.
629
648
  | # | Name | Aliases |
630
649
  |:--|:--|:--|
631
650
  | _1_ | _J*_ | _joule, joules_ |
632
- | 2 | cal | calorie, calories |
633
- | 3 | eV | electronvolt, electron volt, electron-volt |
634
- | 4 | erg | ergs |
635
- | 5 | Btu | btu, btus, british thermal unit, british thermal units |
636
- | 6 | thm | therm, therms |
637
- | 7 | quad | quads |
638
- | 8 | foe | bethe |
651
+ | 2 | eV | electronvolt, electron volt, electron-volt |
652
+ | 3 | th | thermie, thermies |
653
+ | 4 | Ry | rydberg |
654
+ | 5 | Ha | hartree, atomic unit of energy |
655
+ | 6 | boe | barrel of oil equivalent, barrels of oil equivalent |
656
+ | 7 | toe | tonne of oil equivalent, tonnes of oil equivalent |
657
+ | 8 | tce | TCE, tonne of coal equivalent, tonnes of coal equivalent |
658
+ | 9 | cal | calorie, calories |
659
+ | 10 | erg | ergs |
660
+ | 11 | BTU | Btu, british thermal unit, british thermal units |
661
+ | 12 | thm | therm, therms |
662
+ | 13 | W⋅s | W*s, watt-second |
663
+ | 14 | W⋅h | W*h, watt-hour |
664
+ | 15 | kp⋅m | kpm, kp*m, kilopond-metre, kilopond-meter |
665
+ | 16 | hp⋅h | hp*h, horsepower-hour |
666
+ | 17 | kW⋅h | kW*h, kilowatt-hour |
667
+ | 18 | foe | bethe |
668
+ | 19 | quad | quads |
669
+ | 20 | l⋅atm | l*atm, litre-atmosphere, liter-atmosphere |
670
+ | 21 | ft⋅lbf | ft\*lbf, ft⋅lb, ft\*lb, foot-pound force |
671
+ | 22 | in⋅lbf | in\*lbf, in⋅lb, in\*lb, inch-pound force |
672
+ | 23 | ft⋅pdl | ft*pdl, foot-poundal |
673
+ | 24 | gal⋅atm | gal*atm, gallon-atmosphere |
639
674
 
640
675
  ## 41. Dynamic viscosity
641
676
 
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: 5.8.0
4
+ version: 5.10.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-11-06 00:00:00.000000000 Z
11
+ date: 2023-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -111,6 +111,8 @@ files:
111
111
  - lib/unit_measurements/comparison.rb
112
112
  - lib/unit_measurements/configuration.rb
113
113
  - lib/unit_measurements/conversion.rb
114
+ - lib/unit_measurements/errors/blank_quantity_error.rb
115
+ - lib/unit_measurements/errors/blank_unit_error.rb
114
116
  - lib/unit_measurements/errors/parse_error.rb
115
117
  - lib/unit_measurements/errors/primitive_unit_already_set_error.rb
116
118
  - lib/unit_measurements/errors/unit_already_defined_error.rb