unit_measurements 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +1 -1
- data/README.md +3 -0
- data/lib/unit_measurements/unit.rb +17 -7
- data/lib/unit_measurements/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 330be281aba063532010cf47f1e0065c35390510749002f368ff3139a22e6b5c
|
4
|
+
data.tar.gz: 26a8aa9db580205a117b11a8b653a5c609d1972be7b3eb76e2b91ec20f02b7be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d67ddc3a66baec5ce04878b046541dd7b9f3d8da65a18fcf84179f4178c467b3e2276f1a236e22caac9d170815d6529be842fdac2ac45aed79e48b32d136de7
|
7
|
+
data.tar.gz: 331afbfc4616fd9cbccf13ed6c3d01266ba6fd49e9fe4ae06c9f8ed311210a77381056d0037415b4fc4c48477a5fcda48d2d64397c8df3888bcacf1b965c79c8
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
## [1.2.0](https://github.com/shivam091/unit_measurements/compare/v1.1.0...v1.2.0) - 2023-08-15
|
2
|
+
|
3
|
+
### What's new
|
4
|
+
|
5
|
+
- Added support to specify unit value as an `array` of number and unit. viz.,
|
6
|
+
|
7
|
+
----------
|
8
|
+
|
1
9
|
## [1.1.0](https://github.com/shivam091/unit_measurements/compare/v1.0.0...v1.1.0) - 2023-08-14
|
2
10
|
|
3
11
|
### What's new
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -399,6 +399,9 @@ UnitMeasurements::Time = UnitMeasurements.build do
|
|
399
399
|
# You can also specify conversion string if it's converted against a unit other
|
400
400
|
# than the unit group's base unit.
|
401
401
|
unit :h, value: "60 min", aliases: [:hour, :hours]
|
402
|
+
|
403
|
+
# You can also specify unit value as an array.
|
404
|
+
unit :d, value: [24, :h], aliases: [:day, :days]
|
402
405
|
end
|
403
406
|
```
|
404
407
|
|
@@ -38,13 +38,11 @@ module UnitMeasurements
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def conversion_factor
|
41
|
-
if value.is_a?(
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
value
|
47
|
-
end
|
41
|
+
return value if value.is_a?(Numeric)
|
42
|
+
|
43
|
+
measurement_value, measurement_unit = parse_value(value)
|
44
|
+
conversion_factor = unit_group.unit_for!(measurement_unit).conversion_factor
|
45
|
+
conversion_factor * measurement_value
|
48
46
|
end
|
49
47
|
|
50
48
|
private
|
@@ -75,5 +73,17 @@ module UnitMeasurements
|
|
75
73
|
["R", %w(ronna), 1e+27],
|
76
74
|
["Q", %w(quetta), 1e+30]
|
77
75
|
].map(&:freeze).freeze
|
76
|
+
|
77
|
+
def parse_value(tokens)
|
78
|
+
case tokens
|
79
|
+
when String
|
80
|
+
tokens = Parser.parse(value)
|
81
|
+
when Array
|
82
|
+
raise BaseError, "Cannot parse [number, unit] formatted tokens from #{tokens}." unless tokens.size == 2
|
83
|
+
else
|
84
|
+
raise BaseError, "Value of the unit must be defined as string or array, but received #{tokens}"
|
85
|
+
end
|
86
|
+
[tokens[0].to_r, tokens[1].freeze]
|
87
|
+
end
|
78
88
|
end
|
79
89
|
end
|
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: 1.
|
4
|
+
version: 1.2.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-09-
|
11
|
+
date: 2023-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|