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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 89eb7e5143f351c33f06395bf5750dc6cfd3e31977a39f5850d392c5e28974b3
4
- data.tar.gz: c404924ca5aad4eafdb3b037330d7cb06716d34bb2628ce485be4ff7e6998b4a
3
+ metadata.gz: 15e4217a23509a5741c95e644292d685a013839cbb9b9d1c92447ec400847442
4
+ data.tar.gz: 388e18b284891ea7224f6adf41e982f1d35d5d814805d9727d8b34239c905e6c
5
5
  SHA512:
6
- metadata.gz: 9415d88cd2b720adb1d6bce2e28c81341233e31b87fbeca770fc997e556f8ecc6f94593f4410ebbbe610979faa73738c777deae1d10eb3513fcd9b17e99fd562
7
- data.tar.gz: df2bfad26a1c0f4bb66220ab05948b92aff9b77d4dd3405f912dec6902fc6208999b0218babae82b2045c266882b72a3fdb5baad2f81713549dcd8523dccf4da
6
+ metadata.gz: 0f7871a8a53daf3fcbe0ae829f8c6bb6163dbd2ead4dcc892ff1c0c6fbc4a47e24c23856cbd233efdc8045a70c48ac5274e52d77b2d8b3ab9be216fcca124f38
7
+ data.tar.gz: c806ad1826c9515e3698e718046b25c94f32cb93c17e203eca709252340445f0e557dd6db8607de9829e1610100800831ec5f3e1d7471819d86b1531da8fc1d3
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- engineer_calculator (2.0.1)
4
+ engineer_calculator (2.0.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -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]
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Engineer
2
- VERSION = "2.0.1"
2
+ VERSION = "2.0.2"
3
3
  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*1/33
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*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
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 time, tp: value*5.39121E-44.rationalize
37
- au: value*4.1341373345192E+16.rationalize
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.628E+6
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: "value-273.15r"
49
- °F, Fahrenheit: "value*1.8r-459.67r"
50
- °R, Rankine scale: "value*1.8r"
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.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
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.84130625E-5.rationalize
81
- uk-fluid-ounce: value*2.95735295625E-5.rationalize
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.8039068369647E-5.rationalize
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*100000r
97
+ dyn: value/100000r
98
98
  N: value
99
- kgf: value*0.10197162129779r
100
- lbf: value*0.22480894309971r
101
- pdl: value*7.2330138512099r
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*1E-06.rationalize
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.0197162129779E-05.rationalize
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.7777777777778E-07
133
+ kWh: value/2.7777777777778e-07
134
134
  calth: value/0.23900573613767r
135
- kcalth: value/2.3900573613767E-04.rationalize
135
+ kcalth: value/2.3900573613767e-04.rationalize
136
136
  calIT: value/0.2388458966275r
137
- kcalIT: value/2.388458966275E-04.rationalize
138
- eV: value/6.2415094796077E+18.rationalize
139
- BTU: value/9.4781712031332E-04.rationalize
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.2137119223733E-04.rationalize
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.1
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-10 00:00:00.000000000 Z
11
+ date: 2019-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler