numeric_with_unit 0.0.3 → 0.0.4
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 +4 -4
- data/lib/numeric_with_unit/unit.rb +12 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d291b9eeb33681e615cf968e9ebf04564dea470b
|
4
|
+
data.tar.gz: cfbd75a22e7f4ed618127772d481a18582461c13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 596b5e89d9161c75f00e49fb392cbaa8ec2d7ab272b174443671d28e5b3c961dc68dc8fd822b335a4adc4c62457cc370c235b6a4d4c587640617726bda0797b3
|
7
|
+
data.tar.gz: ca6f084096c236d63b2e327dc11795dc30d0043704ec8b752b7729ab4fcd80beab44db11d3a1d8c502b9535b56e9c4205926d36eaf8aee3da5d48ee55f195e8c
|
@@ -109,24 +109,25 @@ class NumericWithUnit
|
|
109
109
|
def self.derive
|
110
110
|
derivation = Hash.new(0)
|
111
111
|
yield(derivation)
|
112
|
-
|
113
112
|
return Unit.new if derivation.empty?
|
114
|
-
|
115
|
-
dimension = Hash.new(0)
|
116
|
-
|
117
|
-
h = derivation.sort_by{|u,v| u.symbol}.sort_by{|u,v| v} # ←どうしよう
|
113
|
+
derivation.delete_if{|k,v| k.symbol.nil?}
|
118
114
|
|
119
|
-
|
120
|
-
|
115
|
+
# constructing symbol
|
116
|
+
h = derivation.reject{|k,v| k.symbol.empty?}.sort_by{|u,v| u.symbol}.sort_by{|u,v| v}
|
117
|
+
syms_pos = h.select{|u,v| v > 0}.map{|u,v| u.symbol + (v.abs>1 ? v.abs.to_s : '')}
|
118
|
+
syms_neg = h.select{|u,v| v < 0}.map{|u,v| u.symbol + (v.abs>1 ? v.abs.to_s : '')}
|
121
119
|
symbol = syms_pos.join('.')
|
122
120
|
symbol += '/' + (syms_neg.size==1 ? "#{syms_neg.first}" : "(#{syms_neg.join('.')})") unless syms_neg.empty?
|
123
121
|
|
122
|
+
# constructing dimension
|
123
|
+
dimension = Hash.new(0)
|
124
124
|
derivation.each do |u,v|
|
125
125
|
u.dimension.each do |d,i|
|
126
126
|
dimension[d] += i*v
|
127
127
|
end
|
128
128
|
end
|
129
|
-
|
129
|
+
|
130
|
+
# constructing from_si proc
|
130
131
|
from_si = derivation.map{|u,v|
|
131
132
|
prc = if v > 0
|
132
133
|
->(x){u.from_si(x)}
|
@@ -140,6 +141,7 @@ class NumericWithUnit
|
|
140
141
|
->(x){memo[prc[x]]}
|
141
142
|
}
|
142
143
|
|
144
|
+
# constructing to_si proc
|
143
145
|
to_si = derivation.map{|u,v|
|
144
146
|
prc = if v > 0
|
145
147
|
->(x){u.to_si(x)}
|
@@ -152,7 +154,8 @@ class NumericWithUnit
|
|
152
154
|
}.reduce{|memo, prc|
|
153
155
|
->(x){memo[prc[x]]}
|
154
156
|
}
|
155
|
-
|
157
|
+
|
158
|
+
# deriving new unit
|
156
159
|
self.new(derivation){|config|
|
157
160
|
config.symbol = symbol
|
158
161
|
config.dimension = dimension
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: numeric_with_unit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- diaphragm
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: This gem provide NumericWithUnit class to calculate numeric with unit
|
14
14
|
of measurement.
|