engineer_calculator 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/eng_calc.rb +2 -2
- data/lib/eng_formula.rb +3 -53
- data/lib/engineer_calculator/version.rb +1 -1
- data/lib/unit_calc/si_alter_unit.yml +3 -8
- data/lib/unit_calc/si_derived_unit.yml +1 -1
- data/lib/unit_calc/variable_unit.yml +43 -37
- 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: 15e4217a23509a5741c95e644292d685a013839cbb9b9d1c92447ec400847442
|
4
|
+
data.tar.gz: 388e18b284891ea7224f6adf41e982f1d35d5d814805d9727d8b34239c905e6c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f7871a8a53daf3fcbe0ae829f8c6bb6163dbd2ead4dcc892ff1c0c6fbc4a47e24c23856cbd233efdc8045a70c48ac5274e52d77b2d8b3ab9be216fcca124f38
|
7
|
+
data.tar.gz: c806ad1826c9515e3698e718046b25c94f32cb93c17e203eca709252340445f0e557dd6db8607de9829e1610100800831ec5f3e1d7471819d86b1531da8fc1d3
|
data/Gemfile.lock
CHANGED
data/lib/eng_calc.rb
CHANGED
@@ -13,13 +13,13 @@ module Eng
|
|
13
13
|
|
14
14
|
attr_accessor :error, :alter
|
15
15
|
def calc(formula)
|
16
|
-
|
16
|
+
|
17
17
|
return nil unless formula
|
18
18
|
|
19
19
|
begin
|
20
20
|
c = { value: "", unit: [], si_formula: "", error: [] }
|
21
21
|
|
22
|
-
split_value_unit(formula.gsub("⋅","*").gsub("÷","/")).map do |e_formula|
|
22
|
+
split_value_unit(formula.gsub("×","*").gsub("⋅","*").gsub("÷","/")).map do |e_formula|
|
23
23
|
if e_formula[:unit].nil?
|
24
24
|
c[:value] << e_formula[:value].to_f.to_s + "r"
|
25
25
|
c[:si_formula] << e_formula[:value]
|
data/lib/eng_formula.rb
CHANGED
@@ -4,7 +4,7 @@ module Eng
|
|
4
4
|
unit_array = []
|
5
5
|
formula_pre = formula.to_s.delete(" ")
|
6
6
|
formula_pre.scan(/(#{operator_reg(:tri)})|
|
7
|
-
(?:(#{operator_reg(:num)}(?:#{operator_reg(:double)})*)([^#{operator_reg(:num)}#{operator_reg(:double)}#{operator_reg(:ari)}]
|
7
|
+
(?:(#{operator_reg(:num)}(?:#{operator_reg(:double)})*)([^#{operator_reg(:num)}#{operator_reg(:double)}#{operator_reg(:ari)}]+\w*))|
|
8
8
|
(?:(#{operator_reg(:num)}(?:#{operator_reg(:double)})*)((?:\/?\(?\/?[a-z]+\d*(?:\*[a-z])*(?:\W*[a-z]\d*\)*)*)(?:\d[^[a-z]])*\)?))|
|
9
9
|
(#{operator_reg(:ari)})|
|
10
10
|
((?:#{operator_reg(:num)})*(?:#{operator_reg(:double)})?)/ix)
|
@@ -41,10 +41,10 @@ module Eng
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def liner_function(formula)
|
44
|
-
formula_arr = formula.split(/(
|
44
|
+
formula_arr = formula.split(/(#{operator_reg(:num)})|(value)|(\*)|(\/)|(\+)|(-)/).reject{|v| v == ""}
|
45
45
|
input_num = formula_arr.index("value")
|
46
46
|
mv_num = formula_arr.index{ |n| n =~ /\*|\// }
|
47
|
-
pm_num = formula_arr.index{ |n| n
|
47
|
+
pm_num = formula_arr.index{ |n| n == "+" || n == "-" }
|
48
48
|
|
49
49
|
if mv_num
|
50
50
|
a_ari = formula_arr[mv_num]
|
@@ -75,55 +75,5 @@ module Eng
|
|
75
75
|
|
76
76
|
"value" + a_ari + a.to_s + b_ari + b.to_s + a_ari + a.to_s
|
77
77
|
end
|
78
|
-
|
79
|
-
def new_liner_function(formula)
|
80
|
-
fl_arr = formula.split(/(\*|\/|\+|-)/)
|
81
|
-
value_i = fl_arr.index("value")
|
82
|
-
|
83
|
-
a = []
|
84
|
-
b = []
|
85
|
-
pl = false
|
86
|
-
(value_i .. fl_arr.size - 1).each do |i|
|
87
|
-
if pl || fl_arr[i] == "+" || fl_arr[i] == "-"
|
88
|
-
b << reverse_operator(fl_arr[i])
|
89
|
-
pl = true
|
90
|
-
else
|
91
|
-
a << reverse_operator(fl_arr[i])
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
if value_i != 0
|
96
|
-
(0 .. value_i - 1).reverse_each do |i|
|
97
|
-
if fl_arr[i] == "+" || fl_arr[i] == "-" || i == 0
|
98
|
-
(i .. value_i - 1).reverse_each do |ii|
|
99
|
-
a.unshift(reverse_operator(fl_arr[ii]))
|
100
|
-
end
|
101
|
-
|
102
|
-
if i != 0
|
103
|
-
(0..i).each do |ii|
|
104
|
-
b.unshift(reverse_operator(fl_arr[ii], false))
|
105
|
-
end
|
106
|
-
end
|
107
|
-
break
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
111
|
-
a.join + "+(" + b.join + ")/value"
|
112
|
-
end
|
113
|
-
|
114
|
-
def reverse_operator(operator, opt = true)
|
115
|
-
case operator
|
116
|
-
when "+"
|
117
|
-
"-"
|
118
|
-
when "-"
|
119
|
-
"+"
|
120
|
-
when "*"
|
121
|
-
opt ? "/" : "*"
|
122
|
-
when "/"
|
123
|
-
opt ? "*" : "/"
|
124
|
-
else
|
125
|
-
operator
|
126
|
-
end
|
127
|
-
end
|
128
78
|
end
|
129
79
|
end
|
@@ -89,14 +89,6 @@ Radiant Intensity:
|
|
89
89
|
Spectral Intensity:
|
90
90
|
- W/(sr*m)
|
91
91
|
- watt per steradian metre
|
92
|
-
Speed, Velocity:
|
93
|
-
- m/s
|
94
|
-
Acceleration:
|
95
|
-
- m/s2
|
96
|
-
Jerk, Jolt:
|
97
|
-
- m/s3
|
98
|
-
Snap, Jounce:
|
99
|
-
- m/s4
|
100
92
|
Angular Velocity:
|
101
93
|
- rad/s
|
102
94
|
Angular Acceleration:
|
@@ -209,3 +201,6 @@ Catalytic Activity:
|
|
209
201
|
- kat
|
210
202
|
- katal
|
211
203
|
- mol/s
|
204
|
+
|
205
|
+
Viscosity:
|
206
|
+
- Pa*s
|
@@ -54,10 +54,10 @@ Electrical Conductance: s3*A2/(kg*m2)
|
|
54
54
|
Magnetic Flux: kg*m2/(s2*A)
|
55
55
|
Magnetic Field Strength, Magnetic Flux Density: kg/(s2*A)
|
56
56
|
Electrical Inductance: kg*m2/(s2*A2)
|
57
|
-
Temperature: K
|
58
57
|
Luminous Flux: cd
|
59
58
|
Illuminance: cd/m2
|
60
59
|
Radioactivity (Decays Per Unit Time): /s
|
61
60
|
Absorbed Dose (Of Ionizing Radiation): m2/s2
|
62
61
|
Equivalent Dose (Of Ionizing Radiation): m2/s2
|
63
62
|
Catalytic Activity: mol/s
|
63
|
+
Viscosity: (kg/m)*s
|
@@ -5,7 +5,7 @@ Length:
|
|
5
5
|
feet, ft, ': value*0.304r
|
6
6
|
yard, yd: value*0.9144r
|
7
7
|
mile, mi: value*1609.344r
|
8
|
-
寸: value
|
8
|
+
寸: value/33r
|
9
9
|
尺: value*0.30303r
|
10
10
|
鯨尺: value*0.37879r
|
11
11
|
丈: value*3.0303r
|
@@ -20,34 +20,34 @@ Length:
|
|
20
20
|
Weight:
|
21
21
|
g, gram: value/1000r
|
22
22
|
ton: value/0.001r
|
23
|
-
grain, gr: value
|
24
|
-
dram, dr: value
|
25
|
-
ounce, oz: value
|
26
|
-
pound, lb: value
|
27
|
-
stone, st: value
|
28
|
-
quarter: value
|
29
|
-
short-ton, sh-tn, s.t.: value
|
30
|
-
分: value
|
31
|
-
匁: value
|
32
|
-
百目: value
|
33
|
-
斤: value
|
23
|
+
grain, gr: value/15432.358352941r
|
24
|
+
dram, dr: value/564.38339119329r
|
25
|
+
ounce, oz: value/35.27396194958r
|
26
|
+
pound, lb: value/2.2046226218488r
|
27
|
+
stone, st: value*6.35029318r
|
28
|
+
quarter: value*12.70058636r
|
29
|
+
short-ton, sh-tn, s.t.: value*907.18474r
|
30
|
+
分: value/2666.6666666667r
|
31
|
+
匁: value/266.66666666667r
|
32
|
+
百目: value/2.6666666666667r
|
33
|
+
斤: value/1.6666666666667r
|
34
34
|
|
35
35
|
Time:
|
36
|
-
Planck
|
37
|
-
au: value*4.
|
36
|
+
Planck-time, tp: value*5.39116e-44.rationalize
|
37
|
+
au: value*4.1341373345192e+16.rationalize
|
38
38
|
min: value*60r
|
39
39
|
hour: value*3600r
|
40
40
|
day: value*86400r
|
41
41
|
week: value*604800r
|
42
|
-
month: value*2.
|
42
|
+
month: value*2.628e+6
|
43
43
|
year: value*31535965.4396976r
|
44
44
|
century: value*3153600000r
|
45
45
|
|
46
46
|
Tempreture:
|
47
47
|
K: value
|
48
|
-
°C, degree, Celsius:
|
49
|
-
°F, Fahrenheit:
|
50
|
-
°R, Rankine scale:
|
48
|
+
°C, degree, Celsius: value+272.15r
|
49
|
+
°F, Fahrenheit: value*0.5555555555555556r+255.37222222222223r
|
50
|
+
°R, Rankine scale: value/1.8r
|
51
51
|
|
52
52
|
Area:
|
53
53
|
are, a: value*100r
|
@@ -68,17 +68,17 @@ Volume:
|
|
68
68
|
cl: value/100000r
|
69
69
|
dl: value/10000r
|
70
70
|
l: value/1000r
|
71
|
-
小さじ: value*5.
|
72
|
-
大さじ: value*1.
|
73
|
-
cc: value*1.
|
74
|
-
cu-in, in3: value*1.
|
71
|
+
小さじ: value*5.0e-6.rationalize
|
72
|
+
大さじ: value*1.5e-5.rationalize
|
73
|
+
cc: value*1.0e-6.rationalize
|
74
|
+
cu-in, in3: value*1.6387064e-5.rationalize
|
75
75
|
cu-ft, ft3: value*0.028316846592r
|
76
76
|
ac-ft: value*1233.4818375475r
|
77
77
|
U.S.fluid-gallon, gallon, gal, U.S.gal, USG: value*0.003785411784r
|
78
78
|
Imperial-gallon, imp.gal: value*0.00454609r
|
79
79
|
Winchester-bushel, bushel, bsh., bu: value*0.03523907016688r
|
80
|
-
us-fluid-once, fl-oz: value*2.
|
81
|
-
uk-fluid-ounce: value*2.
|
80
|
+
us-fluid-once, fl-oz: value*2.84130625e-5.rationalize
|
81
|
+
uk-fluid-ounce: value*2.95735295625e-5.rationalize
|
82
82
|
us-gill, gi: value*0.00011829411825r
|
83
83
|
uk-gill, uk-gi: value*0.0001420653125r
|
84
84
|
us-pint, pt: value*0.000473176473r
|
@@ -87,25 +87,25 @@ Volume:
|
|
87
87
|
uk-quart, uk-qt: value*0.0011365225r
|
88
88
|
us-barrel, bbl: value*0.119240471196r
|
89
89
|
uk-barrel, uk-bbl: value*0.16365924r
|
90
|
-
勺: value*1.
|
90
|
+
勺: value*1.8039068369647e-5.rationalize
|
91
91
|
合: value*0.00018039068369647r
|
92
92
|
升: value*0.0018039068369647r
|
93
93
|
斗: value*0.018039068369647r
|
94
94
|
石: value*0.18039068369647r
|
95
95
|
|
96
96
|
Power:
|
97
|
-
dyn: value
|
97
|
+
dyn: value/100000r
|
98
98
|
N: value
|
99
|
-
kgf: value
|
100
|
-
lbf: value
|
101
|
-
pdl: value
|
99
|
+
kgf: value/0.10197162129779r
|
100
|
+
lbf: value/0.22480894309971r
|
101
|
+
pdl: value/7.2330138512099r
|
102
102
|
|
103
103
|
Pressure, Stress:
|
104
|
-
N/mm2: value*
|
104
|
+
N/mm2: value*1e-06.rationalize
|
105
105
|
bar: value*100000r
|
106
106
|
atm: value*101325r
|
107
107
|
at: value*98066.5r
|
108
|
-
kgf/cm2: value/1.
|
108
|
+
kgf/cm2: value/1.0197162129779e-05.rationalize
|
109
109
|
mmH2O: value*9.80665r
|
110
110
|
cmH2O: value*98.0665r
|
111
111
|
mmH2O(3.98°C): value*9.80638r
|
@@ -130,13 +130,13 @@ Electric power:
|
|
130
130
|
|
131
131
|
Energy, Work, Heat:
|
132
132
|
erg: value/10000000r
|
133
|
-
kWh: value/2.
|
133
|
+
kWh: value/2.7777777777778e-07
|
134
134
|
calth: value/0.23900573613767r
|
135
|
-
kcalth: value/2.
|
135
|
+
kcalth: value/2.3900573613767e-04.rationalize
|
136
136
|
calIT: value/0.2388458966275r
|
137
|
-
kcalIT: value/2.
|
138
|
-
eV: value/6.
|
139
|
-
BTU: value/9.
|
137
|
+
kcalIT: value/2.388458966275e-04.rationalize
|
138
|
+
eV: value/6.2415094796077e+18.rationalize
|
139
|
+
BTU: value/9.4781712031332e-04.rationalize
|
140
140
|
ftlbf: value/0.73756214945755r
|
141
141
|
ftpdl: value/23.730360457056r
|
142
142
|
atm: value/0.0098692326671601r
|
@@ -157,7 +157,7 @@ Acceleration:
|
|
157
157
|
fps2: value/3.2808398950131r
|
158
158
|
fpm/s: value/196.85039370079r
|
159
159
|
fph/s: value/11811.023622047r
|
160
|
-
mps2: value/6.
|
160
|
+
mps2: value/6.2137119223733e-04.rationalize
|
161
161
|
mpm/s: value/0.03728227153424r
|
162
162
|
mph/s: value/2.2369362920544r
|
163
163
|
kn/s: value/1.9438444924406r
|
@@ -172,3 +172,9 @@ Angle:
|
|
172
172
|
mil: value/17.777777777778r
|
173
173
|
/%: value/1.7455064928218r
|
174
174
|
‰: value/17.455064928218r
|
175
|
+
|
176
|
+
Viscosity:
|
177
|
+
poise: value*10
|
178
|
+
cpoise: value*1000
|
179
|
+
(kg/m)*h: value*3600
|
180
|
+
(lb/ft)*s: value*0.671969
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: engineer_calculator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Azeroyear
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-08-
|
11
|
+
date: 2019-08-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|